PHP中的JavaScript无法正常工作(document.getElementById)

Alb*_*haw 5 javascript php iframe document getelementbyid

发生了一些奇怪的事情,但我似乎无法document.getElementById在PHP内部使用JavaScript代码......

例如,将以下PHP代码(如下所示)加载到PHP文件中并运行它,没有JavaScript警报?但是,如果您复制PHP回显(或打印)的源代码并将其作为HTML文件运行,则会出现JavaScript警报?因此,在PHP标记内部创建的任何元素都不能在JavaScript中运行,即使JavaScript不在PHP标记之外?

这是PHP演示代码:

<?php 
print "
<iframe id='my_id' name='my_id' src='http://www.php.com/'></iframe>

<SCRIPT LANGUAGE='javascript'> 
document.getElementById('my_id').contentWindow.onload = function(){
    alert('content loaded');
}
</SCRIPT>
";
?>
Run Code Online (Sandbox Code Playgroud)

如果这只是你的代码,它甚至不起作用:

<iframe id='my_id' name='my_id' src='<?php echo"http://www.php.com/"; ?>'></iframe>

<SCRIPT LANGUAGE='javascript'> 
document.getElementById('my_id').contentWindow.onload = function(){
    alert('content loaded');
}
</SCRIPT>
Run Code Online (Sandbox Code Playgroud)

这是出现的源代码(根据请求)(contentWindow.onLoad对于与我在Safari中不在同一域中的内容,它也正常工作):

<iframe id='my_id' name='my_id' src='http://www.php.com/'></iframe>

<SCRIPT LANGUAGE='javascript'> 
document.getElementById('my_id').contentWindow.onload = function(){
    alert('content loaded');
}
</SCRIPT>
Run Code Online (Sandbox Code Playgroud)

我的问题是在HTML中这段代码工作正常,警报被调用....在PHP中代码不起作用,警报永远不会被调用... PHP处理方式document.getElementById有问题,没有任何问题.contentWindow.onload.

Rub*_*n-J 11

<iframe id='my_id' onload="alert('Content Loaded');" name='my_id' src='http://www.php.com/'></iframe>
Run Code Online (Sandbox Code Playgroud)

或更好

<iframe id='my_id' onload='ShowAlert();' name='my_id' src='http://www.php.com/'></iframe>   

<script type='text/javascript'>
function ShowAlert(){
    alert('Content Loaded');
}
</script>
Run Code Online (Sandbox Code Playgroud)

或者如果你想回应它

<?php
echo "<iframe id='my_id' onload='ShowAlert();' name='my_id' src='http://www.php.com/'></iframe>   

<script type='text/javascript'>
function ShowAlert(){
    alert('Content Loaded');
}
</script>"; ?>
Run Code Online (Sandbox Code Playgroud)

  • 如果在定义事件之前****定义*,则Javascript通常无法调用事件处理函数.在这种情况下,onload失败,因为它在定义处理程序时可能无法检测到函数定义 (3认同)