Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   UserJS в Opera (presto) срабатывает не там где надо (https://javascript.ru/forum/misc/66699-userjs-v-opera-presto-srabatyvaet-ne-tam-gde-nado.html)

Baton 04.01.2017 01:10

UserJS в Opera (presto) срабатывает не там где надо
 
Доброго времени суток.

В JS я новичёк, так что не пинайте. Сваял простенький скрипт для своих нужд (зачем - опустим этот момент), который должен срабатывать на ютубовых страницах и используется в "старой" опере на престо.
Код:

//=UserScript==
// @include https://www.youtube.com/*
// @include https://youtube.com/*
// ==/UserScript==

var url = (window.location.href);
window.location.assign("http://www.google.com/search?q=cache:"+url+"");

только он, зараза срабатывает не только на @include страницах, а на любых, где есть ютубовые фреймы, к примеру тут http://forum.ixbt.com/topic.cgi?id=14:58550-9 или тут http://www.opera.com/blogs/russia/20...a-windows-mac/ Как с этим бороться ?

Malleys 04.01.2017 09:03

Следует проверить в ифрейме или нет.

function isIframe () {
    try {
        return window.self !== window.top;
    } catch (e) {
        return true; // поскольку может не быть доступа из-за same origin policy
    }
}

Baton 13.02.2017 21:46

Malleys, спасибо за помощь (пусть и запоздало), по вашей наводке сваял следующее:

Код:

if (window !== window.top) {

}
else {
var url = (window.location.href);
window.location.assign("http://www.google.com/search?q=cache:"+url+"");
}

Так же, в решении проблемы помогли советы по данной ссылке http://stackoverflow.com/questions/3...irectly-into-t


Часовой пояс GMT +3, время: 03:56.