リボンの「リスト」タブをクリックすると「projectTaskButtonAppName」が未定義になります

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/15650

  •  16-10-2019
  •  | 
  •  

質問

default.aspx ページの Web パーツに配置したプロジェクト タスク リストの SP2010 リボンの [リスト] タブをクリックすると、次の Javascript エラーが発生します。

Webページエラーの詳細

ユーザーエージェント:Mozilla/4.0 (互換性あり。MSIE 8.0;Windows NT 6.1;うわー64;トライデント/4.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;メディアセンター PC 6.0;.NET4.0C;.NET4.0E;InfoPath.3) タイムスタンプ:2011 年 7 月 5 日火曜日 20:32:33 UTC

メッセージ:「projectTaskButtonAppName」は未定義です 行:1302 文字:9コード:0 URI: http://sptest/_layouts/sp.ribbon.debug.js?rev=lc6eCMZP6gL5LnuSYh0S6Q%3D%3D

かなり広範囲に検索しましたが、他に苦情は見つかりませんでした。

何を確認できるか知っている人はいますか?私のマシンには MS Project がありませんが、それによって JS が壊れることはありません。

役に立ちましたか?

解決 4

壊れていたJSにトライキャッチを追加することで、問題を解決しました。次の変更をSP.Ribbon.Debug.jsに変更しました:1302行目 -

    try{    
    return !eval($v_0.HiddenScript);
    }
    catch(e){
    return true;
    }

これで、リボンボタンは少なくとも使用可能です。 sp.ribbon.jsで同じ変更を加える必要があると思います。

おそらくこれは、私の箱にMSプロジェクトをインストールしていないためです。

とにかく、これが他の貧しい魂にも役立つことを願っています。

他のヒント

リボンアイコンはグレーアウトされていますが、それでもアクティブ/使用可能です。他の場所をクリックすると、彼らは色で生き返る傾向があります。回避策があるSPバグ/スクリプトエラーのようです。

プロジェクトタスクリストと同じ問題がありました。この問題を取り除くために、プロジェクトタスクリストのさまざまなWebパーツ設定をテストしました。私のために機能したオプションは、ツールバータイプをフルツールバーに設定することでした。

リスト ビュー Web パーツのツールバー プロパティを「ツールバーなし」に設定して、リスト/ライブラリ ビューの「新しいリンク」を非表示にしようとしましたが、このエラーが発生しました。その後、以下に示すさまざまなアプローチを見つけました。

その前に、必要な Web パーツのツールバー プロパティを「概要ツールバー」に戻してください。

アプローチ 1 (単純)

サイトで使用した共通の js ファイル (または、新しい JS ファイルを作成し、アセット ライブラリにアップロードし、サイトのマスター ページで参照を提供します) に、以下のコードを追加します。これにより、空の div が作成され、ページに追加されます。それは動作します!

<script type="text/javascript" language="javascript">
    var elemDivTaskButton = document.createElement('div');
    document.body.appendChild(elemDivTaskButton);

    var projectTaskButtonAppName = (typeof projectTaskButtonAppName === 'undefined') ? elemDivTaskButton : projectTaskButtonAppName; 
</script>

アプローチ 2

  1. 以下のコードを備えたHTMLファイルを作成し、SitEassetsライブラリにアップロードします。
  2. リストの「AllItems.aspx」ページ (またはリスト ビューが追加された必須ページ) を編集し、コンテンツ エディター Web パーツ (CEWP) を追加します。
  3. コンテンツ エディター Web パーツを編集し、[コンテンツ リンク] プロパティ (Web パーツのプロパティ パネル上) で上記の HTML ファイルの URL を指定します。「OK」をクリックします。
  4. 上部リボンの「ページ」タブで「編集の停止」をクリックします。今すぐページを確認してください。JS エラーはなくなるはずです。

        //Invoke HideNewItemLinkAndActviateWP Method after PageLoad.
        _spBodyOnLoadFunctionNames.push("HideNewItemLinkAndActviateWP");
    
        function HideNewItemLink()
        {
            try
            {
                HideNewItemLink('Hero-WPQ2');
                SetWebPartActive('MSOZoneCell_WebPartWPQ2');
            }
            catch(err)
            {
                //Handle errors here
            }
        }
    
        function HideNewItemLink(tblId)
        {
            try
            {
                var tblNewItemLink = null;
                tblNewItemLink = document.getElementById(tblId);
                if(tblNewItemLink != null)
                {
                    tblNewItemLink.style.display='none';
                }
            }
            catch(err)
            {
                //Handle errors here
            }
        }
    
        function SetWebPartActive(wpId)
        {
            setTimeout(function() {
                var webPart = document.getElementById(wpId);
                if(webPart != null) {
                    var dummyEvent = new Array();
                    dummyEvent["target"] = webPart; 
                    dummyEvent["srcElement"] = webPart; 
                    WpClick(dummyEvent);
                    }
            }, 200)
        }
    

XSLTLISTVIEWWEBPARTでToolbar.Typeを「標準」から「なし」に変更すると、この問題が発生することに気付きました

コンテンツエディターWebパートを追加して、最初のアプローチで指定されたコードを追加してください -

<script type="text/javascript" language="javascript">
    var elemDivTaskButton = document.createElement('div');
    document.body.appendChild(elemDivTaskButton);

    var projectTaskButtonAppName = (typeof projectTaskButtonAppName === 'undefined') ? elemDivTaskButton : projectTaskButtonAppName; 
</script>
ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top