【问题标题】:Check if embedded website URL has changed检查嵌入式网站 URL 是否已更改
【发布时间】:2012-08-01 14:32:57
【问题描述】:

我正在制作一个网站,该网站在一个对象中嵌入了另一个网站(我页面中的一个小框)。我正在寻找一种解决方案,当嵌入对象中的网页发生更改(即用户单击该网站上的链接)时,我可以隐藏该对象

我下面的代码只会显示将创建嵌入对象,但一切都是静态的(即“src”不会随着对象中 URL 的变化而变化)。

<object data=http://www.website.com  width="600" height="400"> <embed id="test" src=http://www.website.com  width="600" height="400"> </embed> Error: Embedded data could not be displayed. </object>

有没有办法查看该对象的当前 URL? 我一直在考虑使用类似于 location.href 的东西,但我不确定如何实现。

谢谢

【问题讨论】:

  • 你为什么不使用&lt;iframe&gt;
  • 正如@SLaks 建议的那样,我会使用 iframe - 但无论哪种方式,如果这不是您的网站,那么由于网站之间浏览器中的安全层,您将遇到问题不同域(例如,您将无法从中操作/读取内容)-更好的问题是您为什么要更改内容的显示..例如什么目的? (也许有更好的解决方案)
  • @scunliffe 我认为这不会是一个安全问题(这些都是内部网站)。我唯一要寻找的是更改 URL。我实际上想要做的是尝试在不使用复杂 API 的情况下模拟来自另一个网站的外部登录。如果我使用 iframe,它可以看到 URL 的变化吗?因为使用嵌入式对象,我根本看不到“src”属性的变化

标签: javascript url object


【解决方案1】:

抱歉,由于浏览器政策,您不能这样做,如果它在您的域中打开页面,您只能获取 iframe url。有关更多信息,您可以在 stackoverflow 中搜索“获取 iframe url”

如果你的网站在同一个域中,你认为你可以这样做

var url = http://www.website.com";
function checkChange(){
   if (document.getElementBydId('test').src != url){
      alert('page change');
   }
}

setInterval(checkChange, 1000);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 2021-02-27
    相关资源
    最近更新 更多