2011-06-08 127 views
2

我有這個腳本:JavaScript的瀏覽器問題

<html> 
<head> 
<script type="text/javascript"> 

function init(){ 

var extText = window.frames.messageTxt.document.body.lastChild.lastChild.data; 
extText = extText.replace(/[\r\n]/g," "); 
document.forms[0].nMessage.value = extText; 
} 

window.onload=init; 

</script> 
</head> 
<body> 
<iframe name='messageTxt' src='lineData.txt' style='display:none'></iframe> 
<form> 
<textarea name='nMessage'></textarea> 
</form> 
</body> 
</html> 

此代碼打開一個文件(現在lineData.txt),並把它放在一個文本。此代碼適用於Firefox和IE,但不適用於Chrome。

的問題是

window.frames.messageTxt.document.body.lastChild.lastChild.data; 

控制檯告訴我,在該行:

Uncaught TypeError: Cannot read property 'body' of undefined

我該怎麼做才能使之適用於Chrome?

+0

它適用於Chrome12中的我。你能設置一個不適合你的例子嗎? – 2011-06-08 11:02:28

回答

2

如果您在本地進行測試(例如file:// C:/.../test.html),您將無法正確訪問Chrome中的幀/ iframe。

+0

我需要打開本地文件 – 2011-06-08 11:16:06

+1

@Diego Stamigni Chrome不會將所有本地文件視爲來自同一個域;相反,它認爲它們都截然不同。因此,默認安全策略不允許訪問。如果您想這樣做,則可以使用命令行選項「--allow-file-access-from-files」啓動Chrome。在啓動帶有該標誌的新程序之前,您必須確保您完全停止所有Chrome進程。 – Pointy 2011-06-08 11:25:08