オフィスで統計を表示するためのウォールボード設定がありますが、埋め込みInternetExplorerを使用するウィジェットでJavaScriptエラーが発生し続けます。
エラーは問題なく閉じることができますが、1日に2〜3回程度頻繁に戻ってくるため、イライラします。エラーが発生すると、ウォールボードにリモートアクセスして閉じるまで統計を表示できなくなります。通常のInternetExplorerでは、以下のオプションのチェックを外すことで簡単に停止できます。
私の質問は、ウィジェットに埋め込まれているInternet Explorerでこのスクリプトエラーポップアップを無効にする方法です。
編集:harrymcからの回答への応答
Harrymcの指示に従ってregeditを使用してこれらの設定を編集しましたが、それでもエラーが表示されます。
レジストリを編集できるので、次の記事には多くのIE設定がリストされています:
Virtual Internet Explorerの設定をカスタマイズする方法 。
「すべてのスクリプトエラーに関する通知を表示する」を無効にするには、次の.regファイルを使用します。
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"Error Dlg Displayed On Every Error"="no"
この特定のケースでは、エラーを非表示にしようとするのではなく、エラーを完全に回避できる可能性があります(または、サプライヤーにこの投稿を参照してJavaScriptを修正してください)。
これで問題が解決しない場合は、「通常の」InternetExplorerブラウザで次のことを試してください。
使用しているURLのドメインが、スクリプトのロード元のドメイン(またはウィジェットがHTMLまたはデータのロード元のURL)と異なっている可能性があり、IEは3分の1を処理していると感じます。 -パーティCookie。だから:サードパーティのCookieを許可すると何が得られるかを見てください。 Microsoftの Cookieをブロック、有効化、または許可 を参照してください。
JavaScriptでCookieを設定または読み取るには、追加の権限が必要な場合があります。だから:信頼できるサイトに_daviker.whccs.com
_を追加することが役立つかどうかを確認してください、もう少しできるようにしますか? Microsoftの セキュリティゾーン:Webサイトの追加または削除 を参照してください。
サーバーがすでに同じ名前のCookieを設定しているが、それを HttpOnly とマークして、JavaScriptからアクセスできないようにしている可能性があります。 既存の「アクティブタブ」Cookieを削除してみてください。
バックグラウンド:
スクリプト の1546行目のエラーは、まったく同じスクリプトがそのCookie自体を設定/変更しようとした直後に、そのスクリプトで使用できない特定のCookieに関連しています(1541行目、その値1533行目がそれをチェックできないため、実際にはundefined
である可能性があります):
_1527 restoreTabsFromTheServer: function()
1528 {
1529 $.post("xrm_ui?get=getTabs", {}, function(responce) {
1530
1531 reportTabs.tabCaptions = responce.reportPages;
1532
// Next line only checks for an empty "openedtabs", not for
// an undefined or null value; bad coding...
1533 if (responce.openedtabs == '')
1534 {
1535 $.cookie("active-tabs", '');
1536 reportTabs.tabidSelected = undefined;
1537 reportTabs.tabindexSelected = undefined;
// Next line would exit the function if we had an empty
// result, but not if it is undefined or null
1538 return false;
1539 }
1540
// Next line: NO ERROR WHILE WRITING, but the new value could
// be undefined, which might even clear an existing cookie?
1541 $.cookie("active-tabs", responce.openedtabs);
1542 reportTabs.tabidSelected = responce.tabidselected;
1543 reportTabs.tabindexSelected = responce.tabindexselected;
1544
1545 // restore tabs
// Next line: NO RESULT WHEN READING
1546 var arr = $.cookie("active-tabs").split(',');
1547 ...
_
したがって、埋め込まれたIEがCookieのJavaScript設定を無視しているか、JavaScriptがCookieを未定義に設定しているようです。そして、その値を読み戻そうとすると、それは空です†。
埋め込まれたIEコンポーネントがCookieに「通常の」IEブラウザ設定を使用しているかどうかはわかりません。しかし、私は確かにIEブラウザで埋め込まれたIEコンポーネント共有クッキーを見てきました。 (IEがデフォルトのブラウザではないときにExcelでリンクをクリックするときのように、 IE Cookieは引き続き一部の検出に使用されます 。)したがって、「通常の」_の設定を変更する可能性があります。IEブラウザは、JavaScriptが埋め込みコンポーネントにこのCookieを設定できるようにします。
† あるいは、1529行目でサーバーから受信した値が有効な値ではないため、書き込みまたは読み取りが失敗する可能性があります。 Cookieではカンマは許可されていません のように、.split(',')
は疑わしいように見えます。ただし、_$.cookie
_にどのjQueryプラグインが使用されているかさえわからないため、エンコードを使用しているかどうかを判断するには、さらに詳細な情報が必要になります。