以下に示すように、子ウィンドウを開いて親ウィンドウを無効にし、子ウィンドウを閉じたら親を再度有効にしようとしているスクリプトがあります。
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);
}
すべてが私のローカルマシンで完全に機能します。しかし、サーバーでこのコードを実行すると、スクリプトエラー「アクセスが拒否されました」エラーが発生します。子ウィンドウは同じドメインにあり、IIS7を使用しています。
編集: スクリプトコードは外部jsファイルにあります。