嘿,我刚刚做了一个简单的函数来从模板视图加载JavaScript文件,如下所示:
public function includeJavascript($file){
if(file_exists('path/to/js/' . $file)){
$this->set('script', '<script type="text/javascript" src="/path/to/js/' . $file . '"></script>');
}
}
字符串通过$script传递,并打印在主布局中。这意味着,当我呈现页面时,我实际上在HTML中得到了:<script type="text/javascript" src="/path/to/js/myjavascript.js'"></script>
,但JavaScript代码不会运行。为什么会这样?
真诚,为什么
暂时将此行添加到myjavascript.js的顶部,作为健全性检查。。
alert('found myjavascript.js OK!');
试试这个:
public function includeJavascript($file){
if(file_exists('path/to/js/' . $file)){
$this->set('script', '<script type="text/javascript" src="/path/to/js/' . $file . '"></script>');
}
}
在file_exists
函数中的path/to/js/
之前添加了一个撇号。
如果你看看你在HTML:中发布的代码
<script type="text/javascript" src="/path/to/js/myjavascript.js'"></script>
注意myjavascript.js
后面的额外撇号吗?这就是为什么它不起作用。