当前位置: 首页 > 知识库问答 >
问题:

当存在跨源问题时,我们如何将事件侦听器添加到iframe中的DOM更改中?

余天宇
2023-03-14

我在html页面的主体中有一个iframe。在iframe中有另一个html页面。Iframe具有src='https://binge.com'。第一次,当iframe的内容加载时(即https://binge.com),我的事件处理程序onreadystatechange被调用。但是当我在binge.com搜索一些东西时,我去了一些不同的位置,我的iframe scr不会改变,但html的内容会改变,这很好。另外,onreadystatechange函数也不执行。我不知道为什么会这样?当用户从https://binge.com导航时,我如何访问像url这样的更改?为什么iframe的src不变?另外,由于跨源问题,我无法直接访问iframe中更改的url。

我是JavaScript新手。任何线索都会很有帮助。

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <style>
        body,html,iframe{
            height:100%;
            width:100%;
        }
    </style>
    <meta>
    <meta>
    <meta>
</head>
<body>

    <iframe src="" id="iframe">  </iframe>


    <script type="text/javascript">
            document.onreadystatechange = function () {
                if (document.readyState == "complete") {
                    abc();
                }
            }

    function abc() {

    }

    </script>
</body>
</html>

共有1个答案

刁文光
2023-03-14

简短的回答:你不能

我试图解决这个问题,当页面首次加载到指定的src上时,您可以访问iframe的内容,因为src是从服务器端指定的,并且假定是安全的,一旦src中的页面发生变化,javascript就不能再访问内容,因为不能保证这样做是安全的/安全的。例如,您可以加载一个带有恶意软件的网站,这样javascript就会阻止访问。如果以编程方式更改src,例如document.getElementById(“myiframe”).src=“www.example.com”;,则应该触发事件,但如果在iframe中更改了iframes页面,则不会触发事件。

希望这能有所帮助

或者,您可以考虑设置一个代理服务器脚本,并将iframe链接到您的脚本,该脚本还可以将每个页面的内容返回到您的网页

 类似资料:
  • 问题内容: 我有一个我想在其中的文本更改时调用一个函数。 我怎么做? 问题答案: Java跟踪JTextField文本内容变化的适当侦听器是DocumentListener,您必须将其添加到JTextField的文档中:

  • 我的代码使用jQuery。我有一个密码输入框,我想要得到输入的密码任何时候。 下面是我的代码: 我确信这是一个正确的代码,因为当我在浏览器的控制台中输入它时,它可以工作,但当我重新加载页面时,它就不工作了 我能做什么?

  • 我用JavaFx制作了两个简单的JMS应用程序(一个是发送者,另一个是接收者)。 但是,我不能用来自发送方的新消息刷新接收方的GUI。 我使用onMessage事件在internet上查找,并重写了它(向那里的ObservableList添加一个项),但它不起作用。引发事件后,没有向ObservableList添加任何元素。 这是我的听筒: 我的发件人:

  • 我正在用canvas构建一个新的Javascript游戏,我想为每个对象添加一个事件监听器。我想画一个有用的操纵杆(箭头),当游戏从智能手机/平板电脑打开。所以,玩家可以通过点击每个箭头来移动角色。 这就是我所拥有的: game.js:

  • 问题内容: 我有一个ArrayList,它向其中动态添加了一些对象,并且有一个JButton。运行我的程序时ArrayList为空,并且JButton设置为setEnabled(false)。我想在ArrayList中有2个或更多元素时启用我的按钮,如果ArrayList有一项或为空则再次禁用它。我该如何实现? 问题答案: 没有任何种类的通知机制。 我建议您编写自己的实现,该实现将委托给私有的实现

  • 我可以在下面的代码中为添加事件侦听器,但不能添加到。 是不是因为twitter做了一些事情不让我这么做?有办法绕过它吗?