Jquery 脚本错误“访问被拒绝”

Jquery script error "Access is denied"

本文关键字:拒绝 访问被拒绝 访问 脚本错误 Jquery      更新时间:2023-09-26

我有一个脚本,我在其中尝试打开一个子窗口并禁用父窗口,并在子窗口关闭后重新启用父窗口,如下所示:

function OpenChild() {
lockOpportunity();
if (ClinicalDataWindow == null || ClinicalDataWindow.closed) {
    ClinicalDataWindow = window.open(clinicalDataUrl, 'EditOppClinicalData',   GetWindowOptions(1020, 600), true);
    var unloadFunc = function () { unlockOpportunity(); };
    if (ClinicalDataWindow) {     
        if (ClinicalDataWindow.addEventListener) {
            ClinicalDataWindow.addEventListener('unload', unloadFunc, false);
        }
        else {
            ClinicalDataWindow.attachEvent('onunload', unloadFunc); 
        }
             }
        }
else {
    ClinicalDataWindow.focus();
}
return false;
}

function lockOpportunity() {
$('#overlay').addClass('locking-overlay');
$('#overlay').height($(".t-edit-form-container").height());
$('#overlay').show();
}
function unlockOpportunity() {
$('#overlay').removeClass('locking-overlay');
$('#overlay').hide();
}

下面是我正在转换为覆盖层以锁定父级的div

<div id="overlay" style="display:none;"></div>

和 CSS:

   .locking-overlay      
         {
            position: absolute;      
            width:930px;     
            @*height: 700px;*@
            z-index: 1000; 
            background-color: black;
            opacity: 0.5;
            filter: alpha(opacity=50);
        }

每个都可以在我的本地机器上完美运行。BUt 当我在服务器上运行此代码时,我收到脚本错误"访问被拒绝"错误。子窗口位于同一域中,我使用的是 IIS7。

编辑:脚本代码位于外部js文件中。

您的clinicalDataUrl是否遵循同源政策?这意味着您可以在任何您想要的 url 上打开一个新窗口,但要与之交互,您需要位于您尝试交互的同一域、协议和端口中。

编辑:这是我在第二条评论中的意思

$(function(){
    $(window).on('unlockOpportunityEvent',unlockOpportunity);
});
function OpenChild() {
lockOpportunity();
var origin = window;
if (ClinicalDataWindow == null || ClinicalDataWindow.closed) {
    ClinicalDataWindow = window.open(clinicalDataUrl, 'EditOppClinicalData',   GetWindowOptions(1020, 600), true);
    var unloadFunc = function () { $(origin).trigger('unlockOpportunityEvent'); };
    if (ClinicalDataWindow) {     
        if (ClinicalDataWindow.addEventListener) {
            ClinicalDataWindow.addEventListener('unload', unloadFunc, false);
        }
        else {
            ClinicalDataWindow.attachEvent('onunload', unloadFunc); 
        }
             }
        }
else {
    ClinicalDataWindow.focus();
}
return false;
}

function lockOpportunity() {
$('#overlay').addClass('locking-overlay');
$('#overlay').height($(".t-edit-form-container").height());
$('#overlay').show();
}
function unlockOpportunity() {
$('#overlay').removeClass('locking-overlay');
$('#overlay').hide();
}