使用magento扩展名从模板中插入javascript

时间:2016-01-15 17:00:29

标签: javascript php xml magento templates

我试图通过我的扩展程序在我的网站的所有/部分页面中插入一些js代码。

我需要一个动态版本(托管在.phtml文件中)(脚本部分):

    <default>
        <reference name="head">
            <block type="core/text" name="simple_example_javascript_block"> 
                <action method="setText">
                    <text><![CDATA[
                    <script type="text/javascript">
                        alert("foo");
                    </script>
                    //]]></text>
                </action>
            </block>
        </reference>
    </default>

我在SO或Google上找不到任何正常工作的代码......

谢谢

2 个答案:

答案 0 :(得分:0)

这应该适用于您使用CDATA

<reference name="head">
<block type="core/text" name="your.block.name">
    <action method="setText">
        <text><![CDATA[<script type="text/javascript">alert('hello');</script>]]></text>
    </action>
</block>
</reference>

已编辑:要通过扩展程序将JS代码插入某些页面,您需要做的就是从您的扩展程序布局文件,通过引用页面,您可以添加js文件,如下所示

<cms_index_index> <!--/ To add js only in homepage similarly for other pages take their layout handle -->
   <reference name="head">
      <!--/ to add from root ie. js/yourmodulename/script.js -->
      <action method="addJs"><script>yourmodulename/script.js</script></action> 
      <!--/ to add from skin activated theme / base ie. skin/frontend/base/default/js/yourmodulename/script.js -->
      <action method="addItem"><type>skin_js</type><name>js/yourmodulename/script.js</name></action>
   </reference>
</cms_index_index>

答案 1 :(得分:0)

我终于使用了:

<checkout_onepage_success translate="label">
    <label>One Page Checkout Success</label>
    <reference name="checkout.success.js">
        <block type="page/html_footer" name="luckycycle_js" as="luckycycle_js" template="Luckycycle/js.phtml" output="toHtml" />
    </reference>
</checkout_onepage_success>

Luckycycle / js.phtml是动态的,由php生成。