私が作成しているモジュールの問題は、それが一種の JavaScript スニペットを生成することです。そのため、アクションを使用してそれを HTML のセクションにフックすることはできません。なぜなら、アクションには JS ファイルが必要だからです (私が間違っている場合は修正してください)違う)。タグに JavaScript スニペットを挿入するには、どのような方法がありますか? ブロックを使用することを考えていましたが、ブロックの後に何を追加すればよいかわかりません。これはすべてのテーマで機能することを考慮する必要があります。
5062 次
3 に答える
8
ストックヘッドのテンプレートは
template/page/html/head.phtml
そのファイルを自分のテーマにコピーするのが、javascript を頭に入れる最も簡単な方法です。
ただし (開発者の観点から)、このテンプレートには次の行が含まれています。
<?php echo $this->getChildHtml() ?>
about リンクは、ブロックのすべての子ブロックを出力します。したがって、head ブロックに子ブロックを追加することもできます。
<layouts>
<default> <!-- does this to all pages — use specific layout handles to target a page -->
<reference name="head"> <!-- get a reference to the existing head block -->
<block type="core/text" name="simple_example_javascript_block"> <!-- append a simple text block, probably better to use a new template block -->
<action method="setText"> <!-- set our new block's text -->
<text><![CDATA[
<script type="text/javascript">
alert("foo");
</script>
//]]></text>
</action>
</block>
</reference>
</default>
</layouts>
上記の XML は単純なcore/text
ブロックを使用して、JavaScript をすべての Magento ページに追加します。から動作しlocal.xml
ます。他の場所で動作するはずです。これを行うためのより良い方法が頭に浮かぶはずです(たとえば、テンプレートブロック)
于 2012-07-26T17:59:09.417 に答える
1
Alan Storm のソリューションは機能しますが、スクリプトまたは HTML データをテンプレート ファイルに含めて、XML から分離したい場合があります。
<?xml version="1.0"?>
<layouts>
<default>
<reference name="before_head_end">
<block type="page/html_head" output="toHtml" name="some_name" template="some_name/head.phtml" />
</reference>
</default>
</layouts>
于 2013-03-02T23:06:08.870 に答える
-1
これは恥ずかしいハックですが、Alan Storm が指摘したように、これは adminhtml では機能しないので、コード/ファイルを最小限に抑えようとする精神で、magento をハックしましたが、これは私のために機能しています笑
$layout = Mage::app()->getLayout();
$headBlock = $layout->getBlock('head');
$headBlock->addLinkRel('blank', '" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">jQuery.noConflict();</script>
<link rel="blank" href="');
于 2013-07-10T14:32:28.027 に答える