私はsharepointの拡張機能を開発しています。私はドキュメントライブラリのカスタムコールアウトを実装しようとしていました(ライブラリコンテンツのプレゼンテーション用にfancytreeを使用しています)。 参考として私はhttps://dev.office.com/sharepoint/docs/sp-add-ins/highlight-content-and-enhance-the-functionality-of-sharepoint-hosted-sharepointを使用しました。Sharepoint 2013コールアウトが定義されていません
私は別の関数execCallout(data)でコールアウト機能を定義しました。 (簡略化のために、データを伴う機能は省略されている)。
私は2つの状況を持っています:execCalloutはユーザによって開始/呼び出され(プリロードされたデータはありません)、execCalloutには開始データがロードされます。どちらの場合も、私は同じexecCalloutを使用します。
function execCallout (data) {
console.log("demo");
//get our launchpoint - where callout will appear
var targetElement = document.querySelectorAll(".fancytree-active.fancytree-focused .fancytree-title")[0];
//Configure new Callout
var calloutOptions = new CalloutOptions();
calloutOptions.ID = 'MyCustomCallOut';
calloutOptions.launchPoint = targetElement;
calloutOptions.beakOrientation = 'leftRight';
calloutOptions.content = ' My Content';
calloutOptions.title = 'My Title';
// check for current callout
var myCallOut = CalloutManager.createNewIfNecessary(calloutOptions);
//Create custom action for callout
var myAction = new CalloutActionOptions();
myAction.text = 'My Special Action';
myAction.onClickCallback = function(event, action)
{
alert("I can do whatever you want");
};
var newAction = new CalloutAction(myAction);
//Add the action to the callout
myCallOut.addAction(newAction);
myCallOut.set({ openOptions: { event: "hover" } }); //or click
myCallOut.open();
}
最初のシナリオが正常に動作し、ユーザーのクリックコールアウトが開始され、すなわち、/ execCalloutが呼び出されます。
しかし、プリロードされたデータでは、「Uncaught ReferenceError:myCallOutが定義されていません」と表示されます(デバッガコンソールからは関数が呼び出されていますが、calloutManagerにはlaunchPointに関連付けられたコールアウトはありません)。 calloutManagerが開始されていないかのように見えます。 デバッガコンソールからexecCalloutを起動すると、いつでも問題が修正されます。
アイデア何が欠けているかは歓迎します。