vb Webbrowser中发生脚本运行错误,但是用WebBrowser1.Silent=true后相当网页还是运行不正常,该怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb Webbrowser中发生脚本运行错误,但是用WebBrowser1.Silent=true后相当网页还是运行不正常,该怎么解决相关的知识,希望对你有一定的参考价值。

WebBrowser1.Silent=true的作用是在网页发生脚本错误时不弹出警告窗口,但是网页中的脚本错误仍然没有得到改正啊!这就好像一个人吃坏了肚子,胃胀不舒服,老放屁,好,你把他的屁眼堵上了,这下放不了屁了,耳根清净了,但他肚子涨的问题并没有得到解决啊!甚至还可能更糟!
所以,当务之急是改正网页上的脚本错误。如果网页是别人的,那就没办法了,WebBrowser不可能自动改正别人的网页的,否则的话,我把百度的首页改成自己的个人主页那不是易如反掌?追问

我在模拟点击一个网站的“创建”按钮,模拟点击时出现脚本运行错误,但是手动就没事,应该是网站动手脚了,网站也是别人的网站,真没办法了吗?万望赐教.

参考技术A 按照你说的手动点击不会报错,模拟点击就会,你看看它的代码是否还有其他的触发动作;尝试指定位置发送消息点击试试!追问

你好,能不能留个联系号码,万望赐教,谢谢。

追答

q4486 44099

本回答被提问者采纳

c#带有Highchart的WPF Webbrowser,来自外部源的Javascript不起作用“此页面上的脚本中发生错误”

【中文标题】c#带有Highchart的WPF Webbrowser,来自外部源的Javascript不起作用“此页面上的脚本中发生错误”【英文标题】:c# WPF Webbrowser with Highchart, Javascript from external source not working "An error has occurred in the script on this page" 【发布时间】:2018-05-18 13:56:01 【问题描述】:

我试图找出为什么我的图表没有显示在我的 WPF WebBrowser 中。 当我加载我的 html 文件时,出现以下错误:

我认为 IE 可能会阻止 WPF WebBrowser 中的 Highchart(来自外部源的 Javascript),因为当我尝试使用 IE 加载它时,我的页面被限制运行脚本或 ActiveX 控件:

我知道how 允许 IE 运行脚本或 ActiveX 控件,但我不知道如何在我的 WPF WebBrowser 中允许它。

我已尝试使用Mark Of The Web,但我不确定我是否正确使用它?

<!-- saved from url=(0016)http://localhost -->

我也尝试过一些绝望的方法,比如将我的程序添加到:

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION\MyProgram.exe 和 MyProgram.vshost.exe,值为 0x00002af9

非常感谢您的帮助。

I don't have find any answer that fix this problem so far.

我的 html 文件:

<!DOCTYPE HTML>
<!-- saved from url=(0016)http://localhost -->
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Highcharts Example</title>
    <style type="text/css">
    </style>
</head>
<body>
    <script src="https://code.highcharts.com/highcharts.src.js"></script>
    <script src="https://code.highcharts.com/modules/exporting.js"></script>
    <div id="container" style="min-width: 310px; height: 400px; max-width: 600px; margin: 0 auto"></div>

    <script type="text/javascript">
        Highcharts.chart('container', 
            chart: 
                type: 'spline',
                inverted: true
            ,
            title: 
                text: 'Atmosphere Temperature by Altitude'
            ,
            subtitle: 
                text: 'According to the Standard Atmosphere Model'
            ,
            xAxis: 
                reversed: false,
                title: 
                    enabled: true,
                    text: 'Altitude'
                ,
                labels: 
                    formatter: function () 
                        return this.value + 'km';
                    
                ,
                maxPadding: 0.05,
                showLastLabel: true
            ,
            yAxis: 
                title: 
                    text: 'Temperature'
                ,
                labels: 
                    formatter: function () 
                        return this.value + '°';
                    
                ,
                lineWidth: 2
            ,
            legend: 
                enabled: false
            ,
            tooltip: 
                headerFormat: '<b>series.name</b><br/>',
                pointFormat: 'point.x km: point.y°C'
            ,
            plotOptions: 
                spline: 
                    marker: 
                        enable: false
                    
                
            ,
            series: [
                name: 'Temperature',
                data: [[0, 15], [10, -50], [20, -56.5], [30, -46.5], [40, -22.1],
                    [50, -2.5], [60, -27.7], [70, -55.7], [80, -76.5]]
            ]
        );
    </script>
</body>
</html>

更新

请求:警报(navigator.userAgent);

结果:

Signification


解决方案

在我的 PC 安全配置没有任何更改的情况下,我通过将其添加到我的 html 文件的标题中来解决了这个问题:

<meta http-equiv="x-ua-compatible" content="IE=11"> 

有关更多信息,请参阅 Alexander Ryan Baggett 答案或此link。

【问题讨论】:

当你 alert(navigator.userAgent); 时它会说什么? highchart js 使用 websockets 吗? 上面写着“Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko”。 您是否尝试过本地计算机锁定注册表设置? msdn.microsoft.com/en-us/library/ee330732(v=vs.85).aspx 不,我没有尝试过,我应该在其中添加 MyProgram.exe 和 MyProgram.vshost.exe 并使用 0x00000000 值吗?我今晚试试 【参考方案1】:

好的,这对我来说很好。

我添加了&lt;meta http-equiv="x-ua-compatible" content="IE=11"&gt;。我还通过将 HTML 文件添加到项目并将其设置为 copy always 在 Visual Studio 中本地加载了 HTML 文件。我最终也不必在我的机器上进行任何注册表调整。

C# 文件

        using System;
        using System.IO;
        using System.Windows;

        namespace ***_question
        
            public partial class MainWindow : Window
            
                public MainWindow()
                
                    InitializeComponent();
                    string curDir = Directory.GetCurrentDirectory();
                    webbrowser1.Navigate(new Uri(String.Format("file:///0/test.html", curDir))) ;
                
            
        

HTML 文件

        <!DOCTYPE HTML>
        <!-- saved from url=(0016)http://localhost -->
        <html>
        <head>
            <meta http-equiv="x-ua-compatible" content="IE=11">
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
            <title>Highcharts Example</title>
            <style type="text/css">
            </style>
        </head>
        <body>
            <script src="https://code.highcharts.com/highcharts.src.js"></script>
            <script src="https://code.highcharts.com/modules/exporting.js"></script>
            <div id="container" style="min-width: 310px; height: 400px; max-width: 600px; margin: 0 auto"></div>

            <script type="text/javascript">
                Highcharts.chart("container", 
                    chart: 
                        type: "spline",
                        inverted: true
                    ,
                    title: 
                        text: "Atmosphere Temperature by Altitude"
                    ,
                    subtitle: 
                        text: "According to the Standard Atmosphere Model"
                    ,
                    xAxis: 
                        reversed: false,
                        title: 
                            enabled: true,
                            text: "Altitude"
                        ,
                        labels: 
                            formatter: function () 
                                return this.value + "km";
                            
                        ,
                        maxPadding: 0.05,
                        showLastLabel: true
                    ,
                    yAxis: 
                        title: 
                            text: "Temperature"
                        ,
                        labels: 
                            formatter: function () 
                                return this.value + "°";
                            
                        ,
                        lineWidth: 2
                    ,
                    legend: 
                        enabled: false
                    ,
                    tooltip: 
                        headerFormat: "<b>series.name</b><br/>",
                        pointFormat: "point.x km: point.y°C"
                    ,
                    plotOptions: 
                        spline: 
                            marker: 
                                enable: false
                            
                        
                    ,
                    series: [
                        name: "Temperature",
                        data: [[0, 15], [10, -50], [20, -56.5], [30, -46.5], [40, -22.1],
                            [50, -2.5], [60, -27.7], [70, -55.7], [80, -76.5]]
                    ]
                );
            </script>
        </body>
        </html>

它也给出了很好的结果。

如果此代码不能解决您的问题。我怀疑您的本地 Intranet 安全区设置需要更改。

【讨论】:

哇,非常感谢!它终于起作用了:)我很感激,你无法想象。 部分解决了我的问题! 也适用于 XPlot 库。谢谢。

以上是关于vb Webbrowser中发生脚本运行错误,但是用WebBrowser1.Silent=true后相当网页还是运行不正常,该怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

怎样让webbrowser执行JS脚本正常显示网页

为啥VB环境下调试正常,生成EXE后运行则发生错误?

关于python的webbrowser

c#带有Highchart的WPF Webbrowser,来自外部源的Javascript不起作用“此页面上的脚本中发生错误”

VB6.0 获取WebBrowser当前打开页面的网址

VB网页浏览经常出现脚本错误问题