创建Safari扩展程序时,我尝试在YouTube页面上添加结束脚本。 该脚本在第一个Youtube页面加载时运行。 问题是,如果我单击页面中的任何Youtube链接,都不会发生任何事情。 但是,如果我在新选项卡中打开链接,它的工作原理就像一个超级按钮。 知道为什么会这样吗?

该代码只是一个简单的警报:

if (window.top === window) {
    alert("Hello World");
}

我用于允许域的模式是:

* .youtube.com

#1楼 票数:1 已采纳

Youtube是单页应用程序。 它通过XHR加载所需的零件,而无需重新加载页面。

您可以使用dom突变事件来检测更改。

  ask by user3399738 translate from so

未解决问题?本站智能推荐:

1回复

Safari扩展注入了脚本/网页交互

我正在构建Safari浏览器扩展 我想从注入的脚本中调用网页中的函数 例如,如果我从注入的脚本在页面上创建了一个脚本: 是否可以从注入的脚本中调用该函数? 或者是可以反向并从网页中注入脚本中调用函数吗? 提前致谢。 编辑: 对于任何感兴趣的人,我目前通过添加/删除自执
1回复

Safari扩展发送消息到注入的脚本

我正在设计一个safari应用程序,并发现我需要能够将数据从全局页面发送到注入的脚本,并在阅读Apple文档后发现我将需要使用消息。 最初,我试着写消息来做我想要的事情而且失败了。 然后,我简化了代码,只发送一条基本消息,但也失败了。 将它缩小到我认为错误之后,这是我尝试的代码: G
1回复

Safari扩展:将窗口对象从注入脚本传递到全局页面

有没有一种方法可以将窗口对象从注入脚本传递到global.html页面, 我试图将窗口作为对象的一部分传递给全局页面,从“加载”侦听器函数开始,在尝试分派消息时会引发类型错误。 这是代码。 可以传递消息分派工作和其他数据,而不会为window对象带来错误。 我该怎么做呢?
1回复

Safari扩展的启动脚本中的访问设置

我现在正在开发Safari扩展程序,但是我无法找到从启动脚本中访问任何扩展程序设置的方法。 通过从消息到global.html文件获取它们,我可以从最终脚本中访问它们。 但是,当我在启动脚本中尝试时,我似乎从来没有得到global.html的回复。 有谁知道解决这个问题? 或者我只是忽略
2回复

有条件地将内容脚本加载到Safari扩展中,如FF/Chrome?

我正在为Chrome,Firefox和Safari编写一个相当复杂的浏览器扩展程序。 在Chrome和Firefox中,我可以根据网址匹配指定将哪些内容脚本注入到哪些网站中。 Safari似乎没有提供任何此类(细粒度)功能 - 它们只允许所有站点使用一个白名单/黑名单。 有没有办法做
1回复

在Safari中扩展安装后如何访问DOM

完成Safari扩展的安装后是否可以访问DOM? 我有兴趣访问安装此扩展程序的页面的HTML。
2回复

可以通过脚本在Safari中欺骗iPadUA吗?

如果这个问题像Asinine一样出现,我深表歉意,但是是否可以通过某种脚本在Safari中欺骗iPad的UA字符串? 我知道可以通过“开发”>“用户代理”菜单项来完成此操作,但是我对制作Safari扩展程序感兴趣,该扩展程序可强制仅向iPad提供HTML5视频的页面正常工作,而无需每次
1回复

通过Safari扩展将jQuery注入网页

我只是想将Safari浏览器扩展程序中的jQuery注入网页。 但是仅对某些页面有效,因为将jQuery添加为开始/结束脚本会将其注入所有页面,这会使浏览变慢。 我通过使用其onload函数创建脚本标签来进行尝试: 检查是否加载了jQuery,我使用: 但是typeof(jQuery