SharePointマスターページのアンカータグ
質問
こんにちは誰かがSherePointカスタム発行マスターページでアンカータグを入れるのに役立ちます。実際に私はこのアナコールタグをクリックするとサイトページを開きたいです。このサイトページは、「ページ」ギャラリーの下のトップレベルのサイトコレクションになります。私はアンカーとクリックイベントを使用しようとしました。の同じマスターページのスクリプトブロックで定義されている "OpenNewFormURLS1()"関数が呼び出されました。
<script type="text/javascript>"
SP.SOD.executeOrDelayUntilScriptLoaded(OpenNewFormUrls1, 'SP.js');
function OpenNewFormUrls1() {
var context= SP.ClientContext.get_current();
var site=context.get_site();
context.executeQueryAsync(Function.createDelegate(this,this.onSuccess), Function.createDelegate(this, this.onFailure));
context.load(site);
var serverRelativeURL=site.get_serverRelativeUrl();
ULS18u: ;
var options = { width: 500, height: 500 };
SP.UI.ModalDialog.commonModalDialogOpen(serverRelativeURL + "/Pages/openNew.aspx", options, null, null);
}
function onSuccess(sender, args) {
}
function onFailure(sender, args) {
}
</script>
.
JavaScriptエラーが表示された後、最初に[アンカータグを最初にクリック]をクリックして[モデル]ダイアログは開いていますが、2番目と後に[Anchor]タグをクリックすると、[モデル]ダイアログを開くと、新しいサイトごとに発生します。サイトコレクション内をご覧ください。私が稼働しているエラーメッセージは次のとおりです。
Message: The property or field has not been initialized. It has not been requested or the request has not been executed. It may need to be explicitly requested.
URI: http://sp2010/_layouts/sp.runtime.debug.js?rev=f2An00kVlALdMLzcBc1cug%3D%3D
誰もが私にこれを達成することができますか?そして私がここにいないこと?親切に助けてください。
解決
あなたが達成しようとしていることのために、あなたはクライアントオブジェクトモデルを使う必要はありません。上記のコードから、クライアントオブジェクトモデルを使用してルートサイトのURLを取得します。ただし、これは既にJavaScript変数の形式でSharePointページに存在します。参照:> http://blog.tedpattison.net/lists/posts/post..aspx?id= 9
また、executeOrDelayUntilScriptLoaded
関数を使用していることに気付きました。この関数はすべてのページロードでOpenNewFormUrls1
関数を実行します。アンカータグをクリックしたときだけではありません。あなたの現在の要求のために、私はあなたが本当にJSクライアントオブジェクトモデルを使用する必要がないので、私はあなたがこの機能を必要とするとは思わない。
だからすべてのことを考えると、スクリプトブロックは次のようになるべきです。
<script type="text/javascript>"
function OpenNewFormUrls1() {
var options = {
url: _spPageContextInfo.siteServerRelativeUrl + "/Pages/openNew.aspx",
width: 500,
height: 500,
title: "My Page",
};
SP.UI.ModalDialog.showModalDialog(options);
}
</script>
.
とAnchorタグのonClickでOpenNewFormUrls1
関数を呼び出します。
これが役立つことを願っています。