如何为含图片iframe的新标签页设标题?document.title失效问题
解决思路
问题出在你先设置了document.title,随后调用document.write()会覆盖整个新页面的文档内容,包括之前设置的title,所以之前的设置被清空了。可以用以下两种方法解决:
方法1:在写入的文档中直接包含title标签
把title和iframe一起通过document.write()写入新页面,构建完整的HTML结构:
var customTab = window.open(); if (customTab) { customTab.document.write(` <!DOCTYPE html> <html> <head> <title>My new tab</title> </head> <body style="margin:0"> <iframe src="${myImage}" style="border: none; width:100%; height:100%"></iframe> </body> </html> `); customTab.document.close(); // 记得关闭文档流,确保内容渲染完成 }
方法2:在document.write之后再设置title
等写入iframe完成后,再修改页面title,此时文档已经存在,设置会生效:
var customTab = window.open(); if (customTab) { customTab.document.write(`<iframe src="${myImage}" style="border: none;"></iframe>`); customTab.document.close(); customTab.document.title = 'My new tab'; // 写入后再设置title }
注意:调用document.write()后最好调用document.close(),结束文档写入流,避免浏览器一直等待内容加载。
内容的提问来源于stack exchange,提问作者Cookies
相关产品推荐
相关产品推荐

