아이디어는 간단하다 :
이
- 사용
background.js
탭 변경이 감지되면 chrome.tabs.onUpdated
- 를 사용하여 특정 유튜브 탭의 URL 변경을 듣고, 그 실행 내용 스크립트에 새로운 URL을 보낼 수 탭
배경 페이지에는 다른 탭에 URL 변경을 수신하지만 난 당신이 그 문제를 해결하는 방법을 알아낼 수 있습니다 확신 해요.
의 manifest.json
{
"manifest_version": 2,
"name": "Tab url change detection",
"version": "1.0",
"background": {
"persistent":true,
"page":"bg.html"
},
"content_scripts": [{
"matches": ["http://www.youtube.com/*"],
"js": ["app.js"]
}
],
"permissions": [
"tabs",
"http://www.youtube.com/*"
]
}
background.html
<script src="background.js"></script>
background.js
,
//Listen for when a Tab changes state
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab){
if(changeInfo && changeInfo.status == "complete"){
console.log("Tab updated: " + tab.url);
chrome.tabs.sendMessage(tabId, {data: tab}, function(response) {
console.log(response);
});
}
});
내가 최근에 고민했다
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
//here we get the new
console.log("URL CHANGED: " + request.data.url);
});
'history.pushState()'를 사용하여 URL과 비디오를 변경하는 것처럼 보입니다. 이 대답을 읽고 더 진행하는 방법을 알아보십시오. http://stackoverflow.com/a/5134732/921204 – techfoobar
해당 링크가 제공하는 솔루션을 사용하면 앞으로/뒤로 브라우저 버튼을 사용할 때 작동하지만 여전히 트리거 할 수 없습니다 비디오를 클릭하면 코드가 생성됩니다. –
새 동영상을 열 때 popState가 실행되지 않습니까? 그 이름은 * pop * State이지만 pushState 또는 replaceState 조작으로 인해 URL이 변경 될 때마다 해당 URL이 변경된다는 것을 읽을 수 있다고 생각합니다. – techfoobar