Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery脚本错误";“访问被拒绝”;_Javascript_Jquery_Access Denied - Fatal编程技术网

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

Javascript Jquery脚本错误";“访问被拒绝”;,javascript,jquery,access-denied,Javascript,Jquery,Access Denied,我有一个脚本,其中我试图打开一个子窗口,禁用父窗口,并在关闭子窗口后重新启用父窗口,如下所示: function OpenChild() { lockOpportunity(); if (ClinicalDataWindow == null || ClinicalDataWindow.closed) { ClinicalDataWindow = window.open(clinicalDataUrl, 'EditOppClinicalData', GetWindowOptions(1

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

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>
每台机器都能在我的本地机器上完美工作。但是当我在服务器上运行这段代码时,我得到了脚本错误“访问被拒绝”错误。子窗口在同一个域中,我正在使用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();
}

您的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();
}

你在JS的第4行忘记了一个
。你在哪个浏览器上运行代码?第5行是第4行的延续更改IE中的安全设置。你可以在google上搜索如何执行。你在JS的第4行忘记了一个
。你在哪个浏览器上运行代码?第5行是第4行的延续更改IE中的安全设置你可以在谷歌上搜索怎么做是的。。它在同一个域中。。。它遵循同一原产地政策。。。脚本在我的本地计算机上没有给我任何错误。。。。我在部署代码后出现了这个错误,也许是你。是您的资源获取导致访问被拒绝吗?我的意思是,也许你的服务器配置不一样,或者文件r/w不好,我也把这个js文件用于其他用途,其他一切都很好。啊,我明白了,你在另一个窗口中添加了事件功能。jQuery在imo方面有问题,您应该尝试从一个窗口触发事件到另一个窗口,而不是将函数作为参数传递。是的,如果您尝试使用真正的导航器,这很奇怪?像铬合金或FF与控制台上。错误应该更明确。另外,您在附加到所创建窗口的事件中引用jQuery,它是否在新窗口中加载了jQuery?是。。它在同一个域中。。。它遵循同一原产地政策。。。脚本在我的本地计算机上没有给我任何错误。。。。我在部署代码后出现了这个错误,也许是你。是您的资源获取导致访问被拒绝吗?我的意思是,也许你的服务器配置不一样,或者文件r/w不好,我也把这个js文件用于其他用途,其他一切都很好。啊,我明白了,你在另一个窗口中添加了事件功能。jQuery在imo方面有问题,您应该尝试从一个窗口触发事件到另一个窗口,而不是将函数作为参数传递。是的,如果您尝试使用真正的导航器,这很奇怪?像铬合金或FF与控制台上。错误应该更明确。另外,您在附加到创建的窗口的事件中引用jQuery,它是否在新窗口中加载了jQuery?