2013-11-26 3 views
0

Я попытался использовать history.js в сценарии содержимого в магазине воспроизведения Google, но функция не выполняется при изменении состояния. Я попробовал метод привязки адаптера в манифесте:History.js не работает в сценарии содержимого

"js": [ 
     "js/jquery/jquery.js", 
     "js/jquery.knob.js", 
     "js/jquery.history.js", 
     "src/inject/inject.js" 
     ] 

, а затем в сценарии содержания

History.Adapter.bind(window,'statechange',function(){ // Note: We are using statechange instead of popstate 
    var State = History.getState(); // Note: We are using History.getState() instead of event.state 
    alert(); 
}); 

хОРОШО ничего не происходит

, а также это решение не работает СПЭ ее

(function(history){ 
    var pushState = history.pushState; 
    history.pushState = function(state) { 
     if (typeof history.onpushstate == "function") { 
      history.onpushstate({state: state}); 
     } 
     // ... whatever else you want to do 
     // maybe call onhashchange e.handler 
     return pushState.apply(history, arguments); 
    } 
})(window.history); 


history.onpushstate=function(){alert()} 

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

ответ

0

Проблема заключается в том, что объект окна отличается для сценария контента и страниц, поэтому это вызывает проблему , Я до сих пор не нашел способ использования history.js в скрипте содержимого в хром. Я использовал мутационный наблюдатель, проверяя изменения поддерева DOM, чтобы решить проблему

Смежные вопросы