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)