繁体   English   中英

将iframe的src =“”更改为javascript:

[英]Change src=“” of iframe to javascript:

我正在尝试将iframe的源代码更改为javascript:...我尝试此操作没有任何运气;

<iframe id="iframed" src="http://example.com"></iframe>

$('#iframed').attr('src','javascript:document.write("hello world")');

我收到“ TypeError:document.write不是函数”错误。 正确的做法是什么?

如果仅要将内容写入框架,则可以直接访问其文档对象:

document.getElementById("iframed").contentDocument.write("Hello World!");

但是,如果框架已从外部域加载,则无法使用。

我不知道有哪个标准定义了当您使用javascript:方案将iframe上的src属性设置为URI时应该发生什么。 IETF一份草稿草案 ,其中提出了已经存在的功能(例如其在锚元素中的使用),但并未说明用户代理必须做任何事情。 您可以将其输入到浏览器的地址栏中的事实归因于浏览器的实现。 例如,我猜想在像lynx这样的命令行浏览器中输入该URL将无济于事。

如果要使用JavaScript在框架之间进行通信,那将是另一个问题。

<!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中使用...也请查看此链接

由于您正在尝试将内容添加到iframe中,因此您首先需要知道,如果您无法控制框架中的网站(在您的示例中为“ http://exemple.com ”),这可能是不可能的。 。

否则,注入脚本将很容易,这将导致各种安全问题。

如果您可以控制iframe内的网站,则可以使其理解来自该网站(包括iframe)的邮件。 如果您想采用这种方式,则可能需要查看“如何在iframe和父网站之间进行通信?”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM