spoilertop.frames['main'].onkeydown = function(e) {
if (active==1)
{
e = e || window.event;
if(e.keyCode==data.key_hil_cmp && e.altKey==true)
{
//тут действия
}else if (e.keyCode==data.key_boy_cmp && e.altKey==true)
{
//тут действия
}else if (e.keyCode==data.key_hp && e.altKey==true)
{
//тут действия
}else if (e.keyCode==data.key_wp && e.altKey==true)
{
//тут действия
}else if (e.keyCode==data.key_all && e.altKey==true)
{
//тут действия
}
}
///////////////
}
есть сайт на котором несколько фреймов вот моё расширение отслеживает нажатия кнопок на сайте и выводит дополнительные функции при нажатии комбинации клавиш, так вот всё работает пока не произойдёт обновление фрейма, допустим переход на другую страничку внутри фрейма. остальные функции продолжают работать. этот код находится в контент скрипте, не загружается на страницу работает прямо от туда. подскажите как исправить? без загрузки кода на сайт... помогает зайти в настройки расширения отключить проверку нажатия клавиш, а потом снова включить и всё заработает до обновления фрейма
UPD: Подходящего решения так и не нашёл, все решения срабатывают 1 раз при загрузке, выход был один добавлять проверку в интервал, использовал location т.к. фреймы на сайте подгружаются методом location.href и нету свойства scr а там можно было через него, ну и следовательно searsh т.к. у фрейма после адреса идёт время загрузки и поэтому даже если фрейм просто обновится то время изменится и он запустит нужный код. Так же можно использовать
MutationObserver внутри функции которая вызывается интревалом.
spoilersetInterval(refresh,500);
var set;
function refresh(){
if (set!=top.frames['main'].location.search)
{
set=top.frames['main'].location.search;
///ну и тут код
}
}