【问题标题】:iFrame source can not be retrieved无法检索 iFrame 源
【发布时间】:2012-03-09 15:13:47
【问题描述】:
<iframe id="myFrame" runat="server" name="main" width="100%" src="http://www.somewebpage.com/" />

这是我放在网页上的简单 iFrame。在我单击该网站上的几个按钮后,iframe 源保持不变。但我希望每次单击按钮、链接等时都能检索到更改的源...

我怎样才能做到这一点?

编辑:This is the screenshot of my work。当我单击“Git”按钮时,网页会在 iFrame 上加载。但是,当我在网站上冲浪时,我希望将文本框更新为 iFrame 的源代码。

【问题讨论】:

  • 点击按钮在哪里?在主页上,或在 iframe 页面上,什么是不改变主页或 iframe 的?你的问题不清楚,这两个网站是一样的吗?
  • dl.dropbox.com/u/38860715/iframe.png 这里只看我截取的截图。当我单击“Git”按钮时,网页会在 iFrame 上加载。但是,当我在网站上冲浪时,我希望将文本框更新为 iFrame 的源代码。
  • 还是不明白你按下了什么按钮,你希望看到什么。
  • 你能在这里显示按下的键后面的代码吗?
  • 想象一个网络浏览器。当您在地址栏上键入 google.com 并在 google 上搜索某些内容时,地址栏会动态变化。在我的项目中,Textbox 是我的地址栏,“Git”按钮是我在 iframe 上加载网页的“Go”按钮。

标签: asp.net iframe


【解决方案1】:

好的,这是我现在测试它的想法及其工作。在 iframe 加载后使用 iframeonload 事件更改输入框

<script>
function HasChange(me)
{
    document.getElementById("WhereIamId").value = 
                 document.getElementById("WhatIShowID").src;        
    return false;
}
</script>

和html

<input type="text" id="WhereIamId" value="" />
<iframe src="page1.aspx" onload="return HasChange(this);" id="WhatIShowID" ></iframe>

您也可以使用document.getElementById("&lt;%=myFrame.ClientID&gt;") 来获取渲染的ID。加载 iframe 后,使用当前 url 更新文本框。

【讨论】:

  • 当我构建页面时,它说:Error 3 Identifier expected; 'return' 是这一行的关键字 &lt;iframe src="page1.aspx" onload="return HasChange(this);" id="WhatIShowID" &gt;&lt;/iframe&gt;
  • @MehmetBudak Ether 删除 runat=server,ether 在后面的代码中添加此属性。我已经对其进行了测试和工作。
  • 我认为应该保留runat=server属性,但是添加动作应该这样完成;通过 .cs 文件使用 TextBox1.Attributes.Add("onchange","HasChange(me);"); 定义附加属性;
  • 您提供的解决方案无效。它所做的只是获取 iframe src,它在启动时分配给 Web 浏览器地址栏。它根本不更新文本框。但没关系我会用别的东西来解决问题。既然你是唯一一个试图帮助我的人,我只想将你的答案标记为正确答案,以表达我的感激之情!非常感谢您的帮助@Aristos!
  • @MehmetBudak 谢谢你的发言,但我再告诉你一次,它对我有用,我可以把源代码发给你看。我没有为所有浏览器测试它,但它可以工作。我认为的另一个想法是每秒更新文本栏的计时器。你赢了把源代码发给你看吗?
猜你喜欢
  • 2018-07-27
  • 2017-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-28
相关资源
最近更新 更多