访问动态创建的iframe内容/元素,如文本框,来自JavaScript的标签
accessing dynamically created iframe contents/elements like textbox, label from javascript
>我正在动态创建一个 iframe,然后在其中调用 aspx 页面,我需要做的是访问 iframe 页面的元素并更改其(仅特定元素,如文本框或标签等)值,而无需重新加载整个页面。
第一个任务是访问被调用到我的iframe中的页面元素,我正在尝试使用JavaScript来访问它们,但到目前为止没有任何进展。
我已经尝试了这样的各种解决方案:
如何在Javascript中获取iframe的正文内容?
实际上,您附加的答案应该有效。但请注意,仅当您的父页面和 iframe URL 是从同一主机(域名)加载的情况下,才适用。如果没有,您将从浏览器收到一条错误消息,指出此操作已被阻止。
如果你试图通过iframe显示另一个网站,然后操纵它,那么你必须放弃这个梦想,因为它不可能那么简单地发生。我可以为你想到一个解决方案,不确定它的合法性,这有点痛苦。
您可以在自己的域上打开服务器端脚本,该脚本接收 URL,获取其内容,然后回显它。通过这种方式,您可以获得原始所需的页面内容,但您可以在自己的主机上使用它,因此您可以按照随附答案中的提及对其进行操作。
请注意,从那里控制一点也不容易,因为一旦用户单击页面中的链接,他就会再次不受您的控制,因此您可能希望将所有页面链接更改为服务器端脚本的地址并附加原始链接以让它为您获取它。可能还有很多我没有想过的问题。
PHP此类函数的示例:
function fetchURL() {
$urlToFetch = urldecode($_GET['url']);
$contents = file_get_contents($urlToFetch);
// maybe here manipulate links and other stuff throw str_replace or,
// if you want more control over it, you may want to load it in to some DOM parser class,
// manipulate it and extract the result back to a string variable.
echo $contents;
}
请注意,在这种情况下,您应该通过 iframe 加载脚本,其中包含所需的 URL 作为查询字符串,如下所示:
$yourDesiredURL = 'http://www.example.com';
echo '<iframe src="http://www.yourdomain.com/your/script/path.php?url=' . urlencode($yourDesiredURL) . '"></iframe>';
***************编辑*****************
实际上,现在我看到您标记了 .NET,所以我的示例代码可能不适合您,但由于它非常简短且简单,因此转换它没有任何问题。再一次,我想说的是,iv'e从未尝试过,它可能超出了你(和我的)头脑,也许你最好放弃这个想法。
- 来自文本输入null的html javascript变量
- 动态启用/禁用来自控制器的输入文本
- 使用jQuery访问元素'来自谷歌文档托管的iframe的文本
- 在来自Javascript中实时预览的文本中渲染Markdown
- Jquery未获取'h1'来自文本
- 我有来自OpenWeatherMap API的风向数据,数据以0到360度表示.我想将其转换为文本格式
- 我如何完善这个Javascript代码,使其只适用于来自图像的链接(而不是来自文本的链接)
- 如何在rails中使用来自fabricjs的文本框模块
- JQuery 显示来自可见 HTML 表格单元格的文本的串联列表
- 如何映射来自不同来源的图像和文本
- 在网页上显示来自 TXT、HTML 等(托管在云上)的外部文本
- 我正在用来自选择的数据填充文本框,它可以工作,但是
- 来自文本字段的 JavaScript 文本未获得值
- 如何使用 javascript 显示来自 MYSQL 数据库的文本
- 访问动态创建的iframe内容/元素,如文本框,来自JavaScript的标签
- 来自文本文件的 Javascript 随机数组
- 如何检测和转换来自纯文本URL的URL图像和视频
- 来自 .js.erb 的 JavaScript 被执行,但也显示为文本
- 来自 JSON 的字符串被写入为文本而不是 DOM 元素
- 将文本设置为“来自 JavaScript 的输入”