Questions tagged «javascript»

JavaScript(JS)是一种客户端脚本语言,它允许与用户交互,控制浏览器,异步通信以及更改显示的文档内容。默认情况下,Magento 1带有prototype.js库,Magento 2带有jQuery。使用“ prototype-js”和“ jquery”标签来查询有关这些库的问题。

3
JS错误Magento 2
我一直在努力完成一些事情,并在整个周末内将其发布在网上,这有些破破烂烂,我也不知道为什么要这么做,所以我希望有人能帮助我。 我尝试将自定义jQuery添加到我的自定义主题中,并成功加载了jQuery并且该函数正在运行。然而!它无法正常运行。例如,Safari无法加载jQuery,并且我在控制台中不断出现这些错误: defaultCaptcha.js:29未捕获的TypeError:无法读取未定义身份验证的属性“验证码” -popup.js:26未捕获的TypeError:无法读取未定义的属性“自动完成”(匿名函数) 我以为这与我声明jQuery的方式有关,但是当情况并非如此时,我决定删除所有自定义JS,但仍然出现这些错误。我猜似乎有些东西要打破了。 我的自定义“主题”只是一个简单的登录页面,无非我的自定义订阅框。 什么会导致这些错误?

5
如何在Magento2中调用Owl Slider
如果我们想在Magento 1.X中添加Owl Slider,请按照以下步骤操作。 复制owl.carousel.min.js并owl.carousel.js粘贴到skin/frontend/pakage_name/theme_name/js 复制owl.carousel.css并粘贴到skin/frontend/pakage_name/theme_name/css 转到app/design/frontend/pakage_name/theme_name/layout/page.xml并调用js和CSS 我们可以在Magento 1.X站点中的任何地方使用Owl Slider。 因此,在Magento 2中,我们如何调用“猫头鹰”滑块,应该在站点中的任何地方调用它,以便我可以随时使用。 对于我这个问题,我已经参考了此链接,但是它不符合要求,并且无法正常工作。 现在,我已将Owl滑块js放入其中,app/design/frontend/pakage_name/theme_name/Magento_Catalog/web/js但是它无法正常工作。 任何帮助,将不胜感激。

4
Magento 2 customer-data.js:90:23 [object Object]
我使用带有Porto主题的Magento 2.2,登录到商店并刷新页面或切换到另一页面后,在控制台的第90行遇到了[object Object]javascript错误customer-data.js。 我在Firefox,Chrome,IE 11和Edge中进行了测试,并且只在Firefox(我最常使用的浏览器)中显示。 它不会引起任何严重的问题(据我所知),但是我想解决此问题。 customer-data.js文件的第90行是:"throw new Error(jqXHR);"。 在jqXHR对象内部是JSON响应消息: {“消息”:“ \”“ paypal-billing-agreement \”部分来源不受支持”} 我已经看到了一些建议,但是大多数建议都是围绕清理缓存和静态文件展开的。 我尝试过:清除Firefox缓存和cookie,清理Magento静态文件,缓存和存储缓存,但到目前为止没有任何效果... 而且我不太确定该怎么做...任何帮助将不胜感激。 编辑/解决方案 错误的原因是我禁用了Paypal模块,但没有清除浏览器的本地/存储缓存。 在此缓存中,有一个对paypal模块的特定调用,无法处理,因此它返回了这样的JS错误。 清除此缓存可解决此问题。


1
管理员配置:根据选定的多选值显示字段
我想显示基于选定的multiselect输入的字段...如果仅选择一个值,则下面的代码将起作用。如果我选择了多个值,则它仅显示一个字段(首先从源模型中选择) <enabled> <label>Enabled</label> ... <source_model>adminhtml/system_config_source_enabledisable</source_model> </enabled> <!-- this gives three options - shop, ebay, amazon --> <channels> ... <frontend_type>multiselect</frontend_type> <source_model>module/system_config_source_channels</source_model> <depends> <enabled>1</enabled> </depends> </channels> <mail_template_shop> ... <depends> <enabled>1</enabled> <channels>shop</channels> </depends> </mail_template_shop> <mail_template_ebay> ... <depends> <enabled>1</enabled> <channels>ebay</channels> </depends> </mail_template_ebay> 相关代码: app / code / core / Mage / Adminhtml / Block …

2
JS窗口小部件:两个自定义窗口小部件扩展了同一父窗口小部件Magento 2
前提 我有2个自定义窗口小部件,它们扩展了相同的父窗口小部件。 父小部件: Magento_ConfigurableProduct/js/configurable 第一个自定义小部件: Vendor_AModule/js/configurable 第二个自定义小部件: Vendor_BModule/js/configurable 第一个自定义小部件require-config.js: var config = { map: { '*': { configurable: 'Vendor_AModule/js/configurable' } } }; 第一个自定义小部件JS: define([ 'jquery', 'mage/translate', 'Magento_ConfigurableProduct/js/configurable' ], function ($) { $.widget('vendor.configurable_awidget', $.mage.configurable, { /** * {@inheritDoc} */ _configureElement: function (element) { this._super(element); alert('Custom widget A is triggered!'); } }); …

2
如何在CMS检测器中隐藏Magento?
我有一个Magento商店,我想将其隐藏在cms探测器中。我的意思是我不想让任何人知道我的网站CMS,而且我的网站是建立在Magento上的。 有一些类似的网站http://guess.scritch.org/正在检测CMS,因此我想从他们的观察中隐藏我的网站CMS。 有一些方法可以隐藏WordPress网站CMS,但是我找不到Magento的任何东西

2
如何创建无法关闭的Magento 2 Modal弹出窗口?
我正在尝试创建无法关闭的模式弹出窗口。它具有一个按钮,可通过单击该按钮将您带到下一页,但是我不希望用户能够关闭它。 可以通过三种方式关闭模式弹出窗口: 单击[X]右上角的十字/ 按钮 按下逃逸 点击覆盖 到目前为止,这是我的模态JS,我认为clickableOverlay: false已经解决了第三个问题: require( [ 'jquery', 'Magento_Ui/js/modal/modal' ], function($, modal) { $("#popup").modal({ autoOpen: true, responsive: true, clickableOverlay: false, modalClass: 'modal-custom', title: 'Popup', buttons: [{ text: $.mage.__('Take me back to the homepage'), class: 'action close-popup wide', click: function () { window.location.href = '/'; } }] }); …

2
Magento 2:如何检测结帐步骤更改
我正在尝试找出检测Magento 2结帐中步骤变化的最佳方法。例如,从发货详细信息到付款,反之亦然。 我已经做了一些挖掘工作,并且vendor/magento/module-checkout/view/frontend/web/js/model/step-navigator.js可以使用next()哪种在继续按钮navigateTo()上触发,以及在用户直接单击checkoutstep时哪种触发-但是两种方法似乎都比较笨拙,无论如何如何,都必须有一种更干净的方法来检测步骤更改以及哪一步。 我希望stepChange()每当结帐步骤发生更改时就会触发的功能或类似功能。 我的问题: 发生结帐步骤更改时,触发我的自定义JS的最佳方法是什么?


1
如何添加特定于块的JS(和CSS)-_right_方式?
所以我花了几个小时在谷歌上搜索,阅读,学习等等,但是没有人(甚至没有艾伦·斯托姆!)都向我说明了这一点。似乎整个互联网都对将JS或CSS添加到Magento 2 的特定页面感兴趣,但是我正在寻找的是将JS / CSS添加到特定的块。 简而言之,这是我的问题: 将JS(以及CSS)添加到特定块的最佳方法是什么,以便如果该块存在于页面(*)上,则将加载JS / CSS,如果该块不存在,则没有CSS / JS? ? *这意味着任何块都可以通过layout.xml在页面/模板上,在我的模块的自定义页面上,通过块/页面的toHtml方法或最重要的是嵌入在所见即所得中的块来设置/产品说明/ CMS阻止/ CMS页面。 我已经读了很多Alan的精彩文章(再次对这个人表示敬意!),更不用说其他有关此方面的文章了,但是我感到每个人都想添加到页面,特定页面,而不是任何地方使用块。 我觉得我对各种技术很熟悉,但是我可能会在这里遗漏一些东西,所以我希望获得社区的共识,或者为所有前端开发人员提供一个路标,以期向全栈开发人员寻求帮助。类似的问题,并思考我的选择。 以前,在Magento 1中,我将查看块构造器,获取布局,获取头引用并在那里调用addJs / addCss,或者如果可能的话,使用layout.xml中的方法。这意味着将JS “添加”到块构造函数的资源列表中(在主题级别输出头块之前)。但这似乎不可能。 我已经阅读了有关添加JS / CSS的方法(这不是一个简单的“我怎么做?”,这是更简洁的“什么是正确的/ mag2方式?”),并且对这些方法很熟悉技术: /view/[area]/layout/[default/page_id].xml技术,使用<head></head>根元素 将Head块添加到我的模块中,并添加到head.additional中,其中包含有关是否加载了我的块的某种逻辑 使用\ Asset \ GroupedCollection和\ Asset \ Repository对象从页面/模板的构造者中注入(虽然这似乎没有与块结合),但是潜在地是加载顺序? 使用RequireJS并将requireJS配置应用到我的模块 我错过了什么吗? 有人认为正确的方法是使用RequireJS库,以及x-magento-init属性或仅require("my_module", function(){ ... })使用内联脚本中带有语法的脚本。但这对我来说似乎很笨拙?我将不得不设置脚本来加载脚本,被迫至少内联一些我的JS,但是似乎最直接的方式是说“这是我的块,现在需要我一些JS”,方法是将其弹出到我的phtml中。 但是,我真的很希望能够通过PHP做到这一点,作为一个后端/堆栈程序员,我理想地希望将JS封装起来,并且(理想情况下)允许我的前端团队根据需要编写它。简而言之,要照顾好加载(后端开发到前端开发“如果需要,可将phtml放到主题中,在主题中覆盖,同样是js文件,从属的libs和这里的块的css”)。 这表明__construct对资产系统具有注入依赖关系的方法。但是我无法使它正常工作,这似乎在Alan Storms的快速文章中得到了证实:Magento Quickies:Magento 2:以编程方式添加前端资产文件 注意标志“因此,创建带有前端资产的模块的想法不在了。” ...真可惜:( 谢谢你们花时间阅读和考虑。我期待着您的回音! PS>显然,这是StackExchange,所以我将答案标记为我要实现的最佳课程(阻止特定的资源加载),但是我将尽一切努力在所有内容的底部列出参考要么增加讨论范围,要么提出可靠的解决方案!

3
如何在Magento 2上最小化/优化Javascript?
我已经在magento 2上使用minify javascript进行了一段时间的努力。用于缩小的admin选项不起作用,因此我一直在寻找另一种解决方案。我已经尝试过使用gulp脚本来执行此操作,但这会导致require js出现问题,其中某些文件尚未及时准备就绪。 有没有人找到缩小magento 2上的javascript的解决方案?

2
覆盖js核心功能magento 2
我正在尝试覆盖Magento_Swatches/js/SwatchRenderer.js文件中的某些功能 我的代码适用于requirejs-config.js: var config = { config: { mixins: { 'Magento_Swatches/js/SwatchRenderer': { 'Magento_Swatches/js/SwatchRendererCategory1': true } } } }; 和文件代码 SwatchRendererCategory1.js define(function () { 'use strict'; var mixin = { updateBaseImage: function (images, context, isProductViewExist) { var justAnImage = images[0]; if (isProductViewExist) { context .find('[data-gallery-role=gallery-placeholder]') .data('gallery') .updateData(images); } else if (justAnImage …


4
使用模块layout.xml用于块将CSS和JS添加到<head>
概要 我想在我的分组产品视图和简单产品视图中添加一个块。该块将提供一些关于悬停状态的很好的工具提示,我使用的是一个带有一个jquery插件和一个css样式表的小型库。 我希望仅在这些页面上将这两个资源包括在magento中。 笔记 我正在运行一个自定义主题; 缓存被禁用 ; 和 我的文件在/js目录内; 迄今… 尽管如此,我知道一种方法是layout.xml在模块中使用,起初这没有用,所以我认为也许我需要在内部进行额外的配置config.xml以告知Magento我的布局要求-这也没有用。 通过没有工作,我的意思是,不装我的资产。 请在下面找到附件。 app / code / local / Vendor / Rating / etc / layout.xml &lt;?xml version="1.0"?&gt; &lt;layout&gt; &lt;default&gt; &lt;reference name="head"&gt; &lt;action method="addJs"&gt; &lt;script&gt;vendor/qtip/jquery.qtip.min.js&lt;/script&gt; &lt;/action&gt; &lt;action method="addCss"&gt; &lt;stylesheet&gt;vendor/qtip/jquery.qtip.min.css&lt;/stylesheet&gt; &lt;/action&gt; &lt;/reference&gt; &lt;/default&gt; &lt;/layout&gt; 应用程序/代码/本地/供应商/评级/etc/config.xml &lt;?xml version="1.0"?&gt; &lt;config&gt; ... &lt;frontend&gt; &lt;layout&gt; …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.