奇怪的事情正在發生,但我似乎無法得到的JavaScript代碼document.getElementById
PHP的容器內工作...JavaScript的PHP內不工作(的document.getElementById)
例如,加載以下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
錯誤。
_「因此,在PHP標記內創建的任何元素都不會在javascript中運行,即使javascript保存在php標記之外嗎?」_ - 瀏覽器不知道或關心響應的哪一部分在'<?php'標籤內動態生成,哪部分是靜態的。 _「但是,如果你複製php迴應的源代碼」_ - 你能告訴我們從瀏覽器的View Page Source選項中看到的回顯到底是什麼嗎? – nnnnnn