使用Magento,我需要將數據庫中的值傳遞給json中的自定義模塊中的javascript。由於CSP,我避免了內嵌JavaScript。我跟着http://www.pierrefay.com/magento-create-block-44用於Javascript的Magento自定義塊
我遇到了佈局文件中塊的type屬性問題。當我使用page/html時,顯示我的JavaScript模板文件,但發送文本/ html標題而不是文本/ javascript,我認爲這是xss風險。
當我嘗試一個自定義類型,如拍賣/歷史記錄,JavaScript佈局不加載。相反,它顯示了標準店鋪設計的空白頁面。下面是我的文件
應用程序/代碼/本地/ Mymodule中/拍賣的/ etc/config.xml中
在這裏,我有塊定製產品視圖頁面除了新的塊我試圖使用的JavaScript。
<config>
...
<frontend>
<routers>
<routeurfrontend>
<use>standard</use>
<args>
<module>Mymodule_Auction</module>
<frontName>auction</frontName>
</args>
</routeurfrontend>
</routers>
<layout>
<updates>
<auction>
<file>history.xml</file>
</auction>
</updates>
</layout>
</frontend>
<global>
<blocks>
<Mymodule_Auction>
<class>Mymodule_Auction_Block_Catalog_Product_View</class>
</Mymodule_Auction>
<catalog>
<rewrite>
<product_view>Mymodule_Auction_Block_Catalog_Product_View</product_view>
</rewrite>
</catalog>
<auction>
<class>Mymodule_Auction_Block</class>
</auction>
</blocks>
... (code for models and helpers) ...
</global>
</config>
應用程序/設計/前端/ Mymodule中/默認/佈局/ history.xml如果我更改類型= 「拍賣/史」 到 「頁/ HTML」,它顯示但text/html的頭部,而不是文本/ JavaScript的
<layout version="0.1.0">
<default>
<reference name="content"></reference>
</default>
<auction_index_history>
<reference name="content">
<block type="auction/history" template="auction/history.phtml" />
</reference>
</auction_index_history>
</layout>
應用程序/代碼/本地/ Mymodule中/拍賣/座/ History.php
<?php
class Mymodule_Auction_Block_History extends Mage_Core_Block_Template
{
public function methodblock()
{
return ‘informations about my block !!’ ;
}
}
工作。 $ this-> getResponse() - > setHeader('Content-type','text/javascript'),因爲我有JavaScript代碼以及json。這些包含在與