2

SharePoint 開発で、JavaScript エラー「行: 2 文字: 141544 in sp.ui.rte.js の引数が無効です」が発生します。これは、SharePoint js ファイル内の Google からの既知の問題のようです - http://wss.boman.biz/Lists/Posts/Post.aspx?List=c0143750-7a4e-4df3-9dba-8a3651407969&ID=69 影響を分析した後私は、SharePoint 14 ハイブの js を変更するのではなく、このエラーのエラー メッセージを非表示にすることにしました。私は次のことをしようとしていました:

ClientScriptManager cs = Page.ClientScript;

            //Check to see if the startup script is already registered.
            if (!cs.IsStartupScriptRegistered("Alert"))
            {
                StringBuilder cstext1 = new StringBuilder();

                cstext1.Append("<script type=text/javascript> window.onerror = function (msg, url, num) {return true;} </");
                cstext1.Append("script>");

                cs.RegisterStartupScript(this.GetType(), "Alert", cstext1.ToString());
            }

問題は、これにより、sp.ui.rte.js エラーだけでなく、ページ上のすべての js エラーが抑制されることです。URL で文字列検索を行うことは可能ですか (http://SHAREPOINT/_layouts/sp.ui.rte.js?rev=uY%2BcHuH6ine5hasQwHX1cw%3D%3D - サイト間の唯一の一貫した値は /_layouts/ になります)。 sp.ui.rte.js? ) この正確なエラーを検索して抑制するには? 助けてくれてありがとう!

4

2 に答える 2

1

これまでのところ、これは私が見つけて現在使用している最も成功した修正です。

function fixRTEBug() {
    // This Fix for parentElement bug in RTE should survive Service Packs and CU's
    function SubstituteRTERangeParentElement() {
        var originalRTERangeParentElement = RTE.Range.prototype.parentElement;
        RTE.Range.prototype.parentElement = function () {
            try {
                originalRTERangeParentElement();
            } catch (e) { }
        }
    }
    SubstituteRTERangeParentElement();
}

ExecuteOrDelayUntilScriptLoaded(fixRTEBug, "sp.ui.rte.js");
于 2013-08-12T16:41:34.267 に答える
1

JS のコードの周りでtry/ブロックを使用します。catchメッセージが無視したいものと一致する場合は、何もしないでください。他のすべてを伝播します。

.onerrorメッセージを分析し、無視された文字列に一致しないものもすべて伝播するように変更すると、元のアプローチも機能します。

于 2012-08-06T12:17:16.217 に答える