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

标签 javascript php prestashop prestashop-1.6

我正在 PrestaShop 1.6 中开发自定义支付模块。我的前端 Controller 路径是: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>

问题是在我的本地主机上它工作正常。我在脚本标签中获得了数据完整的 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 查看脚本的源代码时,我得到了 data-complete 属性。

我找不到原因。

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

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

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

最佳答案

我终于找到了解决办法。我觉得很奇怪。因为我在prestashop中只对BO做了如下改动:

  • 去后台
  • 进入高级参数 -> 性能
  • 去CCC
  • 禁用选项:将 JavaScript 移到末尾

就是这样。我的问题解决了。

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

我不认为这个选项会导致这类问题。但它是。所以千方百计应该是解决问题的关键公式,尽管这似乎与所关注的问题上下文无关。

关于javascript - 无法在 PrestaShop 1.6 的脚本标签中添加数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40674654/

相关文章:

php - 多个 WHERE 和 LIMIT MySQL

javascript - 多个文件上传不会向服务器发送任何数据

javascript - 每 5 秒刷新一次 D3 生成的表

javascript - 在单独的 Javascript 文件中获取模型值

php - 解码网络字符(HTML5 Websocket)

php - 如果 mysql 数据库中存在,则不提交表单

api - paypal with prestashop - SetExpressCheckout 价格超过 2 位小数

php - Prestashop 清除缓存哪些文件夹受影响

Javascript 发送变量 post

javascript - 如何禁用多个元素触发?