Проблема с плагином JQuery с IFrame

У меня есть плагин, который регистрирует действие пользователя на любом веб-сайте. Действия записываются в другом окне того же браузера. Для IE он работает правильно на всех сайтах, кроме тех, которые имеют Iframe. script блокируется на сайтах с Iframes со следующей ошибкой: SCRIPT5: доступ запрещен.

Его собственный плагин.

Ошибка на window.open Он не открывает новое окно правильно

Ниже приведен фрагмент плагина.

newwindow = window.open("", "ScriptGen", "menubar=0,directories=0,toolbar=no,location=no,resizable=yes,scrollbars=yes,width=450,height=250,titlebar=0"); 

newwindow.document.write('<title>New Console</title>');

Использование alert (window) отображает "[окно объекта] на всех сайтах.. но на сайтах, имеющих iframes, отображается только" [object] "

Пожалуйста, направляйте.

Ответ 1

Это сработало для меня...

try{
           newwindow = window.open("", "ScriptGen", "menubar=0,directories=0,toolbar=no,location=no,resizable=yes,scrollbars=yes,width=450,height=250,titlebar=0");
            console.log(newwindow.document);
        }
        catch (error) {
            console.log("Error catched");
            newwindow.close();
            useDomain = true;
            var domain = document.domain;
            newwindow = window.open("javascript:document.write('<script>document.domain=\"" + document.domain + "\"</script>')", "ScriptGen", "menubar=0,directories=0,toolbar=no,location=no,resizable=yes,scrollbars=yes,width=450,height=250,titlebar=0");
    }

Спасибо всем за вашу помощь.

Ответ 2

Я не знаю, какую версию jQuery вы используете, но я думаю, вы должны обновиться до 1.11.0:

https://jsfiddle.net/j3LaC/ - попробуйте сделать это с помощью 1.10.1 (не работает) и с 1.11.0 (работает)

HTML:

<div id="body"></div>
<input id="button" type="button" value="Submit iframe"/>

JavaScript:

var iframe = $("<iframe></iframe>").appendTo("#body")[0];
var doc = iframe.document;
var content = '<form method="get"><input name="hidden" type="hidden" value="123"/></form>';
doc = iframe.contentDocument;
doc.writeln(content);
doc.close();

$('input#button').click(function () {
    $('iframe').contents().find('form')[0].submit();
});

CSS

iframe {
    height: 300px;
    width : 100%;
}

Ответ 3

Избавьте iframes перед запуском вашего плагина

function banish() {
    $('iframe').remove();
}