向Magento页面添加一些jquery脚本
这让我发疯。在Magento 1.4.2中,我不知道如何将一些jquery脚本附加到特定页面的标题部分。我通过编辑page.xml向所有页面添加了最新的jquery库,并添加了无冲突的内容 我知道我需要为相关页面的自定义布局更新区域添加一些代码。但是没有任何效果,我尝试了很多代码,当我稍后检查源代码时,没有一个出现在页面的标题中 我在mangeto官方论坛上发布了同样的问题,但八天后没有回复。该论坛对于获得建议来说是可怕的,大多数问题都没有答案:(。你知道我如何通过自定义布局更新来添加到头部吗向Magento页面添加一些jquery脚本,jquery,xml,magento,e-commerce,Jquery,Xml,Magento,E Commerce,这让我发疯。在Magento 1.4.2中,我不知道如何将一些jquery脚本附加到特定页面的标题部分。我通过编辑page.xml向所有页面添加了最新的jquery库,并添加了无冲突的内容 我知道我需要为相关页面的自定义布局更新区域添加一些代码。但是没有任何效果,我尝试了很多代码,当我稍后检查源代码时,没有一个出现在页面的标题中 我在mangeto官方论坛上发布了同样的问题,但八天后没有回复。该论坛对于获得建议来说是可怕的,大多数问题都没有答案:(。你知道我如何通过自定义布局更新来添加到头部吗
$(document).ready(function(){
$("a").click(function(event){
alert("Thanks for visiting!");
});
});
我试着将其包含在脚本标记中,在reference=head标记中。没有任何效果。我把头发拔出来,用谷歌搜索了我能想到的每个单词短语,但没有任何例子说明如何在Magento中将scrip添加到页面头部。请帮帮忙。如果您添加了jQuery库并打开了
noConflict
模式,那么您应该尝试访问t使用jQuery
变量而不是$
变量创建jQuery对象。像这样尝试,看看它是否有效:
jQuery(document).ready(function(){
jQuery("a").click(function(event){
alert("Thanks for visiting!");
});
});
如果这不起作用,您应该在运行脚本之前仔细检查html输出,看看是否包含了jQuery库。这一点非常重要,因为JavaScript在页面上从上到下依次进行处理。以下是三种不同的方法。我很难将其中一种称为“正确”比另一个好 第一种方法:听起来好像您使用了
page.xml
将基本jQuery库添加到页面中。如果您知道如何这样做,您可以添加如下内容
<action method="addJs"><script>path/to/my/file.js</script></action>
<!-- existing line --> <block type="page/html_head" name="head" as="head">
<!-- new sub-block you're adding --> <block type="core/template" name="stackoverflow" as="stackoverflow" template="page/stackoverflow.phtml"/>
...
在主题中找到page/html/head.phtml
,并将代码直接添加到page.html
第三种方法:如果您查看上面提到的股票页面.html
,您将看到这一行
<?php echo $this->getChildHtml() ?>
到page.xml,然后添加stackoverflow.phtml
文件。添加到head块的任何块都将自动呈现。(此自动呈现不适用于所有布局块,仅适用于调用getChildHtml
而不使用参数的块)
您的phtml文件不需要位于页面/
,您可以将其放置在主题的模板文件夹结构中的任何位置。stackoverflow.phtml
文件将包含您希望添加到头部的javascript
<script type="text/javascript">
alert("Test");
</script>
警报(“测试”);
扩展Alan的优秀摘要。如果您只想将文件添加到一个特定页面,可以在Layout Update XML字段中使用以下代码段:
<reference name="head">
<action method="addJs"><script>path/to/my/file.js</script></action>
</reference>
或者,如果您希望它驻留在您的皮肤文件夹中,请使用
<reference name="head">
<action method="addItem"><type>skin_js</type><name>js/file.js</name><params/></action>
</reference>
根据您使用的包和主题更改base和default
您也可以在任何其他布局/?.xml文件中使用上述代码段,只需将其放置在您要寻址的布局句柄中即可。例如,要将其放置在cms.xml中的所有cms页面中,您将找到
<cms_page>
....
</cms_page>
....
并将其更改为
<cms_page>
...
<reference name="head">
<action method="addJs"><script>path/to/my/file.js</script></action>
</reference>
</cms_page>
...
您好,谢谢您的回复,但我想您误解了我的问题。我遇到的问题是我无法将代码插入页面的页眉,代码本身没有任何问题。我确实正确地添加了jquery库。一旦我成功地将脚本添加到页眉,我将尝试您的建议:)@baobei Ah-ha!让我们看看。环顾四周后,我发现您可以这样做:$headBlock=$this->getLayout()->getBlock('head')$headBlock->addJs('somefolder/yay.js')代码>。试试看它是否适合你。顺便说一句,如果您在document.ready
上运行这些东西,您也可以在页面末尾插入代码(这实际上大大提高了页面加载速度)。它需要是xml代码,当我通过后端的xml更新设计框添加它时。所讨论的页面是单个CMS页面还是像所有产品或所有类别一样的页面类型?同意,尽管我会说“local.xml”。当您说“布局更新XML”时,不清楚您指的是什么系统。您是指添加的任何超出默认值的XML文件,还是您所说的管理员中有特定位置?OP将其称为“相关页面的自定义布局更新区域”,我理解为编辑CMS页面时在设计选项卡上可用的“布局更新XML”字段。在其他领域,如编辑产品或类别,该字段称为“自定义布局更新”。谢谢将链接改为local.xml。谢谢回复,我对更正不太感兴趣,而对可能添加布局更新的不同位置更感兴趣。
<cms_page>
...
<reference name="head">
<action method="addJs"><script>path/to/my/file.js</script></action>
</reference>
</cms_page>