Создание букмарклета, который не блокируется - PullRequest
2 голосов
/ 02 июля 2010

Цель: Создать букмарклет, который вызывает удаленный файл JavaScript, открывающий всплывающее окно.Всплывающее окно функционально похоже на то, что делает букмарклет Delicious.

Справочная информация: В настоящее время я использую window.open в этом файле javascript, однако всплывающее окно блокируется почти всемикрупный браузер.

Альтернативное решение этого очень похоже на способ, которым Delicious написал свой букмарклет - вызывая window.open через запрос javascript внутри самого букмарклета.Однако в будущем мне нужна возможность изменить другое содержимое моего файла javascript, не требуя, чтобы пользователи постоянно брали новейшие выпуски букмарклета.

То, что я решил, что происходит: Поскольку вызов window.open не происходит напрямую в результате щелчка пользователем, браузер считает, что это что-то, что должно быть заблокировано.Вот источник об этом.

Этот - учебник, на который я ссылался совсем недавно при создании вызова удаленного файла js.

Вотбазовый пример того, что делает мой код;часть window.open/popup - это единственная значимая часть, которую я включаю, так как это единственная часть, которая, по моему мнению, вызывает осложнения:

Пример удаленного файла JavaScript:

if (typeof jQuery == 'undefined') {
    var jQ = document.createElement('script');
    jQ.type = 'text/javascript';
    jQ.onload=runthis;
    jQ.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';
    document.body.appendChild(jQ);
} else {
    runthis();
}

function runthis() {
    window.open('http://www.google.com/', 'a title',
       'location=yes,links=no,scrollbars=no,toolbar=no,width=550,height=550');
}

Я был бы очень признателен за любую помощь, так как это уже давало мне глупость!

1 Ответ

0 голосов
/ 29 августа 2012

Подход, который выглядит лучше и обходит проблему блокировки, заключается в том, чтобы букмарклет вставлял iframe на страницу, которую пользователь просматривает в данный момент.В итоге я вернулся к этому подходу, когда задал этот вопрос.Отлично сработало.

...