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

15

我正在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>

问题在于在我的本地主机上它运行良好。我在脚本标签中获得了data-complete URL。但是当我在测试服务器上安装模块时,我没有获得data-complete URL。

任何帮助或建议都将受到赞赏。

提前致谢。

更新

我发现问题出在“src”中的“https”。如果src URL以https开头,则无法理解为什么data-complete会消失。没有https就可以。

当我查看以下代码在src中有https的源代码时,我会得到:

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

data-complete属性消失了。但是当我查看没有“https”的src脚本的源代码时,我可以看到data-complete属性。

我找不到原因。

或者,我可以在payment.php控制器中添加JavaScript:

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

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


在payment.tpl文件中添加{$dataCompleteURL|var_dump},并检查结果。 - Agnes Tom
我正在获取 $dataCompleteURL 的值。请查看更新。 - Jahangir Alam
1个回答

5
最终我找到了解决方法。对我来说,这似乎很奇怪。因为我只在prestashop的BO中做了以下更改:
  • 进入后台管理
  • 进入高级参数->性能
  • 进入CCC
  • 禁用选项:将JavaScript移动到结尾
就这样。我的问题解决了。
顺便说一下,我从这个问题中学到了什么:我应该尝试prestashop后台管理中的每一个可能的配置选项。
我没有想到这个选项可能会导致这种类型的问题。但事实上确实是如此。因此,尽管它似乎与涉及问题的上下文无关,但尝试使用每一个可能的方式应该是解决问题的关键公式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接