这是我第一次使用php。我试图在我看到headscript()
附加js文件的网站中优化js。
echo $this->headScript()->appendFile('/js/image-gallery/jquery.simplemodal.1.4.4.min.js');
在此我试图添加一个附加脚本标签的属性
$this->headScript()->setAllowArbitraryAttributes(true);
echo $this->headScript()->appendFile('/js/image-gallery/jquery.simplemodal.1.4.4.min.js',
我也试过
$this->headScript()->setAllowArbitraryAttributes(true);
echo $this->headScript()->appendFile('/js/image-gallery/jquery.simplemodal.1.4.4.min.js',$attrs = array("async" => "true"))
array(“async”=>“true”));
文件中的php部分
<?php
$this->headScript()->setAllowArbitraryAttributes(true);
echo $this->headScript()->appendFile('/js/image-gallery/jquery.simplemodal.1.4.4.min.js', $attrs = array("async" => "true"));
?>
我希望输出为
<script async="true" src="/js/image-gallery/jquery.simplemodal.1.4.4.min.js"></script>
相反,我得到了
<script type="Array" src="/js/image-gallery/jquery.simplemodal.1.4.4.min.js"></script>
如何解决?我无法找到通过headscript();
答案 0 :(得分:2)
您需要将属性作为第三个参数
传递$this->headScript()->appendFile(
'/js/image-gallery/jquery.simplemodal.1.4.4.min.js',
null,
array('async' => 'true', 'foo' => 'bar')
);
null
这是&#39;类型&#39;属性,默认为text/javascript
答案 1 :(得分:0)
看起来您正在使用Zend
框架。如果是这样,请参阅HeadScript Helper
您需要将属性作为$attrs = array()
appendFile($src, $type = 'text/javascript', $attrs = array())
所以你的代码应该是
更新代码
echo $this->headScript()->appendFile('/js/image-gallery/jquery.simplemodal.1.4.4.min.js', $type = 'text/javascript', $attrs = array("async" => "true"));
而不是
echo $this->headScript()->appendFile('/js/image-gallery/jquery.simplemodal.1.4.4.min.js', array("async" => "true"));
答案 2 :(得分:0)
默认情况下,禁用任意属性。要允许这些属性,可以通过setAllowArbitraryAttributes()方法启用它们:
$this->headScript()->setAllowArbitraryAttributes(true);
然后
echo $this->headScript()->appendFile('/js/image-gallery/jquery.simplemodal.1.4.4.min.js', null, array("async" => "true"));