網(wǎng)頁iframe中在Chrome新版本中parent.document.write將不會(huì)執(zhí)行
廣告:
var ifr=window.parent.window.frames['ifr'];
ifr.document.open();
// ifr.document.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n'); //會(huì)提示沒有權(quán)限
ifr.document.write('<html>\n');
ifr.document.write('<head>\n');
ifr.document.write('<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />\n');
ifr.document.write('<style>*{margin:0px;padding:0px;line-height:20px;}</style>\n');
ifr.document.write('<script>function check(){if (document.form1.file2.value==""){alert("上傳文件不能為空");return false;}}<\/script>\n');
ifr.document.write('</head>\n');
ifr.document.write('<body style="padding-top:3px;">\n');
ifr.document.write('<form id="form1" name="form1" method="post" enctype="multipart/form-data" onsubmit="return check();" action="'+editorpath+'uploadinc/Up.aspx">\n');
ifr.document.write('<input type="file" name="file2" id="file2" value="" style="width:230px;line-height:21px;height:21px;vertical-align:middle" /><input style="padding-left:3px;margin-left:1px;padding-right:3px;height:21px;line-height:21px;width:73px;vertical-align:middle" type="submit" name="Submit" value="開始上傳" /></form>');
ifr.document.write('</body>\n');
ifr.document.write('</html>');
ifr.document.close();
針對(duì)以上的測(cè)試數(shù)據(jù),Chrome 從 55版本開始,chrome 瀏覽器對(duì)用戶使用的 document.write() 進(jìn)行干預(yù),如果符合以下所有的情況,頁面 <script> 標(biāo)簽中的 document.write() 將不會(huì)被執(zhí)行:
1 用戶處于緩慢的連接狀態(tài),特別是用戶在 2G 時(shí)。(將來可能會(huì)延伸到慢速連接的其他用戶,例如慢速 3G 或慢速 WiFi);
2 document.write() 在一個(gè)頂級(jí)的文件中,不適用于 iframe 中的 document.write 腳本,因?yàn)樗鼈儾粫?huì)阻止主頁面的呈現(xiàn);
3 document.write() 中加載的腳本是會(huì)阻斷解析的,如果腳本中有 async 或者是 defer 屬性,那么它們還是會(huì)被解析執(zhí)行;
4 document.write() 中加載的腳本和頁面地址不是同個(gè)主域的,換句話說,chrome 瀏覽器不會(huì)阻止 script 標(biāo)簽符合 eTLD+1 規(guī)則的加載;
5 document.write() 中加載的腳本尚未在瀏覽器 HTTP 緩存中。緩存中的腳本不會(huì)導(dǎo)致網(wǎng)絡(luò)延遲,并且仍然會(huì)執(zhí)行。
廣告: