无法在PrestaShop 1.6中的脚本标记中添加数据属性

时间:2016-11-18 10:26:15

标签: javascript php prestashop prestashop-1.6

我正在PrestaShop 1.6中开发自定义支付模块。我的前端控制器路径是:mymodule/controllers/front/payment.php

payment.php包含:

 $this->context->smarty->assign(array( 
'dataCompleteURL' =>  Tools::getShopDomainSsl(true, true) . __PS_BASE_URI__.'index.php?fc=module&module=mymodule&controller=callback&cart='.$cartID));
$this->setTemplate('payment.tpl');

我的模板文件路径是: mymodule/views/templates/front/payment.tpl

payment.tpl包含:

<script src="http://easternbank.test.gateway.com/checkout.js" data-complete="{$dataCompleteURL}" type="text/javascript"> </script>

问题是在我的localhost中它工作正常。我在脚本标记中获得了数据完整的URL。但是当我在测试服务器中安装模块时,我没有得到数据完整的URL。

任何帮助或建议都将不胜感激。

提前致谢。

更新

我发现问题是脚本标记的“src”中的“https”。我无法理解为什么如果src URL以https开头,数据完成就会消失。没有https就可以了。

当我在浏览器中查看源代码时,在src中使用https查看以下代码,我得到:

<script src="http://easternbank.test.gateway.com/checkout.js" data-complete="{$dataCompleteURL}" type="text/javascript"> </script>

data-complete属性消失了。但是当我使用没有“https”的src查看脚本的源代码时,我得到了数据完整属性。

我找不到原因。

我可以使用以下方法在payment.php控制器中添加javascript:

$this->context->controller->addJS(($this->_path).'js/checkout.js');

但我不知道如何在addJS函数中传递数据属性。

1 个答案:

答案 0 :(得分:6)

最后我找到了解决方案。这对我来说似乎很奇怪。因为我在prestashop中只对BO进行了以下更改:

  • 回到办公室
  • go高级参数 - &gt;性能
  • 转到CCC
  • 禁用该选项:将JavaScript移至最后

那就是它。我的问题解决了。

顺便说一句,我从这个问题中学到了一些东西:我应该在prestashop后台尝试过所有可能的配置选项。

我并不认为此选项可能导致此类问题。但它是。所以尝试一切可能的方法应该是解决问题的关键公式,尽管这似乎与有关的问题背景无关。