从PHP创建的HTML调用外部JS时不工作
我有一个PHP脚本,它通过调用我创建的PHP类来创建HTML。该类创建所有HTML标记,其中一个是加载外部JS文件的标记。当我试图从上述文件中访问函数时,什么也没有发生。有什么想法吗 索引页:从PHP创建的HTML调用外部JS时不工作,php,javascript,Php,Javascript,我有一个PHP脚本,它通过调用我创建的PHP类来创建HTML。该类创建所有HTML标记,其中一个是加载外部JS文件的标记。当我试图从上述文件中访问函数时,什么也没有发生。有什么想法吗 索引页: function main(){ $content = "Heres some text for you"; $page = new Page($title="MyTitle", $script="external.js", $content=$content) echo $pa
function main(){
$content = "Heres some text for you";
$page = new Page($title="MyTitle", $script="external.js", $content=$content)
echo $page->toString();
}
function __autoload($className){
require_once $className . '.class.php';
}
班级网页:
//class constructor
function __construct($title='untitled', $script='', $content='Default Page class page'){
$this->title = $title;
$this->script = $script;
$this->stylesheet = $stylesheet;
$this->content = $content;
// $this->currentUser = $currentUser;
}
// creates tag structure for HTML pages
function toString(){
return <<<END
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="jquery.js"></script>
// Heres the link to the external JS file
<script type="text/javascript" src="$this->script"></script>
<script type="text/javascript">
test();
</script>
<title>$this->title</title>
<link type="text/css" rel="stylesheet" href="$this->stylesheet" />
</head>
<body>
$this->content
<p id='content'>page content</p>
</body>
</html>
END;
}// end toString function
} // end class Page
?>
在heredoc的结束标识符之前不能有空格:
END;
应该是:
END;
我还要检查以确保指向external.js文件的路径正确。其他的东西都起作用了吗?喜欢标题还是css?您也没有将$stylesheet传递到您的uu构造的任何位置,这会在尝试设置$this->stylesheet时产生错误,可能整个脚本因此无法加载?没有看到任何突出的内容 您确定JS文件可以在与脚本相同的目录中访问(如有必要,可能需要应用绝对或相对路径) 您还可以尝试调用
test(),因为您有jquery(假设它已加载)代码>在“on ready”块中,如下所示:
$(document).ready(function () {
test();
});
除此之外,我会使用您给定的浏览器调试工具来查看您是否可以收集到任何有用的东西(比如脚本甚至没有作为资源加载)
祝你好运 抱歉,关于混乱的代码,当您在浏览器中查看源代码时,生成的html是什么样子的?抱歉,这是我的第一篇文章,代码传输很混乱。请放心,在原始文件的结尾标识符之前没有空格。谢谢,抱歉忘了删除。这是我为POST所做的删除所留下的,我在一个ready块中调用了函数,但我似乎没有什么不同。Firebug没有显示外部js文件(只有jquery文件),我想这可能与我将脚本的源代码设置为$this->script有关,不知道为什么要尝试将$this->script
更改为external.js——如果可以的话,$this符号有问题……更简单的方法是查看源代码并确保$this->script
正确地转换为external.js
,如果是,我会三次检查external.js文件的位置……答案是。。。。我在外部JS文件的一个函数中的if语句上有一个过多的右大括号。对不起,浪费了大家的时间
$(document).ready(function () {
test();
});