我有以下html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Scrape test</title>
</head>
<body>
<div id="beatles">
<div>
<iframe id="gozujinsama"></iframe>
</div>
</div>
<script type="text/javascript">
var ifrm = document.getElementById('gozujinsama');
var doc = ifrm.contentWindow || ifrm.contentDocument.document || ifrm.contentDocument;
doc.open();
doc.write("<DOCTYPE html><html><body><a href=\"http://google.com\"><img src=\"\"/></a></body></html>");
doc.close();
</script>
</body>
</html>
我尝试的是模拟各种广告脚本在iframe中编写html内容的方式。然后我尝试访问它然后我从我的JavaScript控制台得到以下错误:
TypeError:doc.write不是函数
你知道为什么吗?
答案 0 :(得分:1)
你写错了代码。
var ifrm = document.getElementById('gozujinsama');
var doc = ifrm.contentWindow || ifrm.contentDocument.document || ifrm.contentDocument;
doc.document.open();
doc.document.write("<DOCTYPE html><html><body><a href=\"http://google.com\"><img src=\"\"/></a></body></html>");
doc.document.close();
ifrm
对象的属性为document
,其函数为write
。在您的代码中,您尝试在DOM引用上调用open
,write
和close
函数。
http://docs.godotengine.org/en/stable/learning/features/inputs/inputevent.html
答案 1 :(得分:1)
以下是基于您的代码的工作代码。
完整的工作代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Scrape test</title>
</head>
<body>
<div id="beatles">
<div>
<iframe id="gozujinsama"></iframe>
</div>
</div>
<script type="text/javascript">
var ifrm = document.getElementById('gozujinsama');
var doc = ifrm.contentWindow || ifrm.contentDocument.document || ifrm.contentDocument;
doc.document.open();
doc.document.write('<DOCTYPE html><body><a href=\"http://google.com\"><img src=\"\"/></a></body></html>');
doc.document.close();
</script>
</body>
</html>
答案 2 :(得分:0)
另一种方法是:
var ifrm = document.getElementById('gozujinsama');
var doc = ifrm.contentWindow || ifrm.contentDocument.document || ifrm.contentDocument;
doc.open();
if(doc.write){
doc.write("<DOCTYPE html><html><body><a href=\"http://google.com\"><img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Google_2015_logo.svg/272px-Google_2015_logo.svg.png\"/></a></body></html>");
} else {
doc.document.write("<DOCTYPE html><html><body><a href=\"http://google.com\"><img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Google_2015_logo.svg/272px-Google_2015_logo.svg.png\"/></a></body></html>");
}
doc.close();