基本上我试图从我的PHP调用一个javascript函数,我正在使用我知道在其他情况下工作的代码但是这里不是,我不知道为什么?
这可能是愚蠢的,因为我长时间盯着这个屏幕:)
这是我调用函数的地方:
if(isset($test_details['done_test'])){
echo "getting here";
echo "<SCRIPT LANGUAGE='javascript'>user_error();</SCRIPT>";
}
我成功地“在这里”打印但是它没有调用JS函数。
javascript函数:
function user_error(){
document.write("working");
//alert("User has already taken this test. Your are being redirected...");
//setTimeout("window.location='home_student.php'",3000);
}
评论我最终希望它做什么。
有人可以说清楚。
非常感谢,
@Crimson - 这是我在你的建议后尝试的......仍然没有运气。
javascript now:
$(document).ready(function () {
var done = "<?= $test_details['done_test'] ?>";
if(typeof done != 'undefined'){
$('WORKING').appendTo('#bodyArea'); // just to test
}
});
答案 0 :(得分:2)
通过PHP回显<script>...</script>
,你不会让浏览器运行JS函数!
PHP仅输出您要发送到浏览器的HTML文件。然后,浏览器会解析此HTML,并在向用户显示页面之前执行大量操作。
接下来,用户与显示的页面(或其他与浏览器相关的事件,如'onload')进行交互,并调用附加的JS。
所以,如果你想在某个时间运行一些JS,比如在浏览器加载页面后立即说,你需要在HTML文件中创建JS,这样就会有一个被调用的JS函数在页面加载事件,如下所示:
<body onload="/*do something here*/"> ... </body>
最好使用JQuery或其他一些JS frmework来完成这样的事情。
答案 1 :(得分:2)
您确定该功能已定义吗?也许你在进行函数调用后声明了你的函数。
此外,虽然这里并不重要,但有一个javascript脚本标记的正确方法是。
<script type="text/javascript"></script>
即。不是language="javascript"
答案 2 :(得分:0)
用你的名字替换你调用JS函数的行:
echo '<script type="text/javascript">window.onload = user_error </script>' ;
它应该解决问题。因为在您调用user_error()时,该功能可能尚未被浏览器初始化。因此,您将收到错误,因为无法找到该功能。
如果函数放在外部.js文件中,很可能会出现此错误,因为外部文件通常需要一段时间才能加载。如果函数减速在同一个文件中,但在你调用它之后,同样的事情就会发生。