0

jquery はありません。純粋な JavaScript。Sharepoint html コンテンツ エディターを使用しています。画像と URL のソースを機密としてマークしました。ユーザーが画像の1つをクリックすると、関数「open(this)」がトリガーされ、特定のURLへのポップアップウィンドウ(モーダル)が作成されるように取得しようとしています。これまでのところ、ユーザーが 2 つの画像のいずれかをクリックすると、ウィンドウがポップアップ表示されますが、常に機密情報 2 の URL が表示されます。そのため、「open(this)」の if ステートメントの最初のケースと一致する必要がある場合、その URL には移動しません。はい、別の URL があることを確認しました。私もURLを切り替えましたが、常にconfidential2に行きます!! できれば助けてください。

<script type="text/javascript">
function opac(x) {
  x.style.opacity=.5;
}
function opac_back(x) {
  x.style.opacity=1;
}
</script> 

<script type="text/javascript">
var options = { 
url: theurl, 
        title: "Learning_Technology", 
        allowMaximize: true, 
        showClose: true, 
        width: 625, 
        height: 525, 
        dialogReturnValueCallback: silentCallback}; 
function open(x) {
        var theurl;
    if (x.id == "1") {
        theurl = "confidential1";
    } else if (x.id == "2") {
        theurl = "confidential2";
    } else {

    }
    SP.UI.ModalDialog.showModalDialog(options);
} 
function silentCallback(dialogResult, returnValue) { 
} 
function refreshCallback(dialogResult, returnValue) { 
    SP.UI.Notify.addNotification('Operation Successful!'); 
    SP.UI.ModalDialog.RefreshPage(SP.UI.DialogResult.OK); 
} </script>


<div style="background-color: rgb(237, 237, 237); width: auto; height: auto;">
<center><h2 style="color: green;">MyLearning Requests</h2></center>

<div style="height: auto; width: auto;">
<center><a href="javascript:open(this)"><img width="164" height="42" border="0" id="1" name="button22694Img" src="confidential" onmouseout="opac_back(this)" onmouseover="opac(this)" alt="" style="opacity: 1;"/></a> &#160;  

<a href="javascript:open(this)"><img width="164" height="42" border="0" id="2" name="button27129Img" src="confidential" onmouseout="opac_back(this)" onmouseover="opac(this)" alt="" style="cursor: pointer; opacity: 1;"/></a>



</center>
</div>
</div>
4

2 に答える 2

0

open(this)リンクタグを呼び出しているためthis、画像ではなくリンクになります。リンクにはid属性がないため、「1」と「2」を比較undefinedしていますが、どちらも失敗します。リンク内の画像を取得するには、少しDOMトラバーサルを行う必要があります:)

function open(x) {
        var theurl,
            img = x.firstChild;

    if (img.id == "1") {
        theurl = "confidential1";
    } else if (x.img == "2") {
        theurl = "confidential2";
    } else {

    }
    SP.UI.ModalDialog.showModalDialog(options);
} 
于 2012-08-17T18:48:48.773 に答える
0
  1. a タグに id 属性がありません
  2. var theurl を更新していますが、options.url は更新していません。
于 2012-08-17T18:49:05.680 に答える