我正在尝试将iframe的源代码更改为javascript:... 我试了一下没有运气;
<iframe id="iframed" src="http://example.com"></iframe>
$('#iframed').attr('src','javascript:document.write("hello world")');
我收到“TypeError:document.write不是函数”错误。 这样做的正确方法是什么?
答案 0 :(得分:3)
如果您只想将内容写入框架,则可以直接访问其文档对象:
document.getElementById("iframed").contentDocument.write("Hello World!");
如果框架已从外部域加载,则无效。
答案 1 :(得分:3)
我所知道的标准没有定义,当您将src
上的iframe
属性设置为具有javascript:
方案的URI时会发生什么。有a draft IETF note表明已存在的功能(如在锚元素中使用),但并未说用户代理必须做任何事情。您可以将其输入浏览器的地址栏,这是由于浏览器的实现。例如,我猜测将这个URL输入像lynx这样的命令行浏览器会让你无处可去。
如果你想使用JavaScript在帧之间进行通信,那将是一个不同的问题。
答案 2 :(得分:0)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<iframe id="iframed"></iframe>
<script>
var test = "Hello World!";
document.getElementById("iframed").src = "data:text/html;charset=utf-8," + test;
</script>
</body>
</html>
尝试此操作适用于Chrome ...还可以查看此link
答案 3 :(得分:0)
由于您尝试将内容添加到iframe中,因此您首先需要知道,如果您无法控制框架内的网站(在您的示例中为“http://exemple.com”,则可能无法实现) )。
否则注入脚本会很容易,这会导致各种安全问题。
如果您可以控制iframe中的网站,则可以了解来自网站的邮件,包括iframe。如果您想这样做,您可能需要查看"How to communicate between iframe and the parent site?"。