document.getElementById
何か奇妙なことが起こっていますが、JavaScriptコードをPHP内で動作させることができないようです...
たとえば、次のPHPコード(以下)をPHPファイルにロードして実行すると、JavaScriptアラートは発生しませんか?しかし、PHPがエコー(または印刷)したソースコードをコピーしてHTMLファイルとして実行すると、JavaScriptアラートが発生しますか?では、JavaScriptがPHPタグの外部に保持されている場合でも、PHPタグの内部で作成された要素はJavaScriptで実行されませんか?
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>
";
?>
これだけがあなたのコードである場合でも、それは機能しません:
<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>
表示されるソースコードは次のとおりです(リクエストに応じて)(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>
私の問題は、HTMLではこのコードが正常に機能し、アラートが呼び出されることです。PHPでは、コードが機能せず、アラートが呼び出されることはありません。PHPの処理方法に問題があり、document.getElementById
問題はありません。.contentWindow.onload
。