我正在制作广告拦截器。我只是尝试自动进行"内容拦截器"的safari扩展。我通过示例但没有找到任何解决方案。有没有办法去" ON"扩展或手动我们必须启动它?
答案 0 :(得分:0)
假设你想测试你的个人AdBlock程序&#34;,首先准备一个虚拟HTML,用这一行<div class="ads">hello</div>
,
接下来应用您的&#34;个人AdBlock程序&#34;,假设它是基于JavaScript / CSS而不是类似代理,您可以隐藏或从DOM中删除元素(Node)。
例如:
document.querySelector('div[class*="ads"]')
- 这是查找元素的好方法(非常)通用方法。
这是隐藏&#34;广告&#34;
document.querySelector('div[class*="ads"]').style.display="none";
或者,为了使其更强大,与页面上的其他规则相关,请将其设为本地样式+重要通知者:document.querySelector('div[class*="ads"]').style.cssText="display:none !important;" ;
你也可以从DOM中删除元素(Node):
var e = document.querySelector('div[class*="ads"]')
跟随:
e.parentNode.removeChild(e);
现在,您可能希望看到&#34;您的ADBLOCK&#34;工作,
之后(页面加载后,你的javascript代码运行)输入:
console.log(null === document.querySelector('div[class*="ads"]') ? "removed(success)" : "still here(failed)")
请注意,对于这个示例(为了简单起见),我假设页面中只有一个div与该类(避免循环:))。
如果您要隐藏元素,则应使用window
下的本机方法查询其当前(最新更新)的样式条件:
console.log("none" === window.getComputedStyle(document.querySelector('div[class*="ads"]')) ? "hidden(success)" : "still here(failed)")
享受!
答案 1 :(得分:0)
在iOS上,默认情况下禁用Safari内容拦截器。
无法从您的应用中自动启用它们。您必须指示用户:
打开设置应用
转到 Safari &gt; 内容拦截器。
切换内容拦截器扩展程序。
在macOS上(截至10.12),类似的规则适用:默认情况下禁用内容拦截器扩展程序(与您的应用程序捆绑在一起),并且必须在 Safari中由用户切换到偏好设置&gt;的扩展程序强>