防止出现 JavaScript 运行时错误消息?

时间:2021-03-05 06:13:18

标签: javascript jquery asp.net signalr

我正在维护一个已经构建好的网站应用程序,我的任务是将 SignalR 库添加到其中,以便在用户之间异步工作。

一旦添加了 SignalR 库,它们就会与之前添加的 jQuery 发生冲突。为了解决冲突,我使用了 jquery.noconflict()。虽然它取得了一些进展,但我发现应用程序会来回切换到 JavaScript 库,因此,全局引用“$”将在某个时候返回到 SignalR 或 jQuery,并且某些功能将不起作用相应地。

经过多次尝试,我发现最好的组合是:

  • 添加之前添加的 jQuery
  • 添加 SignalR 库并使用 [![jQuery.NoConflict][1]][1]
  • 重新添加之前添加的 jQuery。

这种组合有效,但 SignalR 库不断给出运行时错误消息。此错误不会影响任何请求的功能,我只是忽略它并且一切运行良好。此外,此消息不会在 chrome 和 edge 中显示,而是在 IE 中显示。

一个可以接受的解决方案是阻止此消息出现。有没有人有办法实现这一目标?我无法触摸现成的库以在任一库中添加 try-catch 块..

这是我添加 jQuery 和 SignalR 库的顺序

   <script src="JQ/jquery.js"></script>
    <script src="JQ/jquery-ui.js"></script>
    <script src="JQ/Dialogs/jsDialog.js"></script>
    <link href="JQ/jquery-ui.css" rel="stylesheet" />

    <script src="Scripts/jquery-3.4.1.js"></script>
    <!--Reference the SignalR library. -->
    <script src="Scripts/jquery.signalR-2.2.2.min.js"></script>
    <!--Reference the autogenerated SignalR hub script. -->
    <script src="signalr/hubs"></script>
    <script>var jQuery_1_1_3 = $.noConflict(true);
        jQuery_1_1_3(function () {
            var chat = jQuery_1_1_3.connection.chatHub;
            {
                chat.client.broadcastMessage = function (name, message) {
                    document.location.reload();
                };
            }
            //alert('start')
            jQuery_1_1_3.connection.hub.start().done(function () {
                alert('Hub started');
            });
        });
    </script>


    <script src="JQ/jquery.js"></script>
    <script src="JQ/jquery-ui.js"></script>
    <script src="JQ/Dialogs/jsDialog.js"></script>
    <link href="JQ/jquery-ui.css" rel="stylesheet" />

enter image description here

enter image description here

enter image description here

0 个答案:

没有答案