0

没有jQuery。纯 JavaScript。我正在使用 Sharepoint html 内容编辑器。我已将图像和网址的来源标记为机密。我正在尝试获取它,以便当用户单击其中一张图像时,它会触发“打开(此)”功能,并将创建一个指向特定 URL 的弹出窗口(模态)。到目前为止,当用户单击两个图像中的一个时,它会弹出窗口,但始终会显示到confidential2 url。因此,当它应该与“open(this)”的 if 语句中的第一个 case 匹配时,它不会转到那个 url。是的,我已经检查以确保我有不同的网址。我也切换了网址,它总是转到机密 2 !如果可以的话请帮忙。

<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属性,因此您正在undefined与“1”和“2”进行比较,这两者都会失败。您将不得不做一些小的 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 回答