Механик против iframe, использующего @include - это работает? [дубликат]

Я раньше имел много катастрофических отказов Проводника (на 32-разрядном) вызванный Черепахой. Они, кажется, ушли, так как я использовал Включать/Исключать настройки пути в "конфигурации" Оверлейных программ Значка TSVN. Ограничение значка накладывает к определенным каталогам, где я сохраняю свой источник сделанным этим намного более стабильный.

9
задан nopuck4you 4 November 2009 в 14:11
поделиться

1 ответ

Ну, конечно, возможно чтобы заставить Greasemonkey работать с iframe - по сути, это общий вопрос , чтобы определить, как остановить его выполнение в iframe, а также на главной странице. Вы должны иметь возможность использовать обратный ответ, чтобы предотвратить выполнение кода в верхнем окне:

if (window.top == window.self)  //don't run on the top window
    return;
//rest of the actual executing code goes here

Я тестировал его, и вы можете использовать @include для сопоставления домена B (домен iframe ) и запустить фрагмент произвольного кода, который его изменяет. Я запустил следующий тестовый пользовательский скрипт на тестовой странице , и он успешно скрывает логотип Google (только когда Google находится в iframe ).

// @include  http://www.google.com*
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
// ==/UserScript==

if (window.top == window.self)  //don't run on top window
    return;

alert('running on a frame');

$('img').each(function() {
  $(this).hide();
});

Насколько я могу судить, есть разве t любые междоменные ограничения, связанные с этим. Я не уверен, что произойдет, если iframe отсутствует при первой загрузке страницы (то есть при запуске Greasemonkey).

11
ответ дан 3 November 2019 в 01:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: