Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript UWP网络视图AdBlocker_Javascript_Uwp_Xmlhttprequest_Adblock_Javascript Injection - Fatal编程技术网

Javascript UWP网络视图AdBlocker

Javascript UWP网络视图AdBlocker,javascript,uwp,xmlhttprequest,adblock,javascript-injection,Javascript,Uwp,Xmlhttprequest,Adblock,Javascript Injection,我正在制作UWP应用程序,并使用WebView显示网页内容。内容不是我的,所以我想阻止恼人的视频广告。我使用下面的功能来放置隐藏横幅的css。 如何完成这项任务?我是否应该过滤每个HTTP请求,以及它是否满足某些正则表达式来停止请求?还是应该阻止执行ads的外部Java脚本?对于Android WebView有一些相关的主题,但我无法使其在UWP上工作 private async void InvokeScript() { string functionString = "let lin

我正在制作UWP应用程序,并使用WebView显示网页内容。内容不是我的,所以我想阻止恼人的视频广告。我使用下面的功能来放置隐藏横幅的css。 如何完成这项任务?我是否应该过滤每个HTTP请求,以及它是否满足某些正则表达式来停止请求?还是应该阻止执行ads的外部Java脚本?对于Android WebView有一些相关的主题,但我无法使其在UWP上工作

private async void InvokeScript()
{
    string functionString = "let link = document.createElement('link'); link.rel = 
    'stylesheet'; link.type = 'text/css'; link.href = 'ms-appx-web:///MyCss.css'; 

    document.getElementsByTagName('head')[0].appendChild(link);";

    await webView.InvokeScriptAsync("eval", new string[] { functionString 
    });
}

不同网站上的广告可能不同,没有删除所有广告的一般场景


要删除网站中的广告,需要获取网站内容并找到广告的代码,然后注入js代码以隐藏广告

我从微软论坛找到了一个很好的解决方案。 对于UWP WebView FrameNavigationStarting,它完成了这项工作

webView.FrameNavigationStarting += webView_FrameNavigationStarting;

private void webView_FrameNavigationStarting(object sender, WebViewNavigationStartingEventArgs args)
{
    // Cancel navigation if URL is not allowed. (Implemetation of IsAllowedUri not shown.)
    if (!IsAllowedUri(args.Uri))
        args.Cancel = true;
}

这是一个很好的解决方案。我找到了隐藏横幅的方法。如何从谷歌隐藏视频广告?它们是通过脚本执行的。如何阻止它们?首先,你应该找到视频广告的容器,如果它们是iframe或div,你应该能够阻止它们。我想模拟一个adblocker。AdBlocker拥有域列表,并以某种方式阻止来自它们的HTTP请求。JavaScript能做到吗?JavaScript能做到吗?答案是否定的,AdBlockers是一个插件,使用浏览器的API,但是WebView没有很多浏览器功能。还有其他选择吗?视频广告在完成、取消等时触发事件。当我停止原型的所有请求或隐藏iframe时,页面停止工作。