2016-12-04 4 views
1

크롬 확장 프로그램을 쓰고 있는데 특정 URL을 다른 페이지로 리디렉션하려고합니다.onBeforeRequest 리디렉션이 작동하지 않습니다.

이 경우 문서에서 redirectUri을 요청을 차단하고 다른 페이지로 리디렉션 할 수있는 상태 인 것을 확인할 수 있지만 시도 할 때 작동하지 않는 것처럼 보입니다.

아무도 내가 뭘 잘못하고 있다고 말할 수 있습니까? 이것은 내 코드 (백그라운드 스크립트)입니다.

아마
"permissions": [ 
    "tabs", 
    "webRequest", 
    "webNavigation", 
    "webRequestBlocking", 
    "*://www.youtube.com/" 
] 
+0

확장자의 HTML 파일을 붙여 넣을 수 있습니까? – ahankendi

+0

@ahankendi 내 확장 프로그램은 HTML 파일을 사용하지 않고 순전히 스크립트 기반입니다 – Paradoxis

+0

실제 답변/솔루션은 질문에 편집해서는 안됩니다 **. 질문을 원래대로 그대로 남겨 두어야합니다. 아마도 질문 *에 대한 설명이 포함되어있을 수 있지만 질문 내 대답은 포함되지 않아야합니다. 사용했던 코드로 자신의 Answer를 만드십시오. [스스로의 질문에 답하는 것이 좋습니다] (http://stackoverflow.com/help/self-answer), 스스로 문제를 풀었을 때. – Makyen

답변

1

당신이 chrome.webRequest 요소를 얻을 수 있습니다 권한의 becuse 정의되지 않는다 :

chrome.webRequest.onBeforeRequest.addListener(details => { 
    console.log("Redirecting request: ", details.url); // Logs the request 
    return {redirectUrl: "/feed/subscriptions"};   // Doesn't redirect request 
}, { 
    "urls": [ 
     "https://www.youtube.com/" 
    ], 
    types: [ 
     "main_frame" 
    ] 
}, [ 
    "blocking" 
]); 

그것은 매니페스트 문제 었죠, 나는 그들과 같이 보이게하기 위해 내 권한을 편집 webRequest API에 대한 발급 요청 권한은 webRequest입니다.

"permissions": [ 
    "tabs", 
    "webRequest", 
    "webNavigation", 
    "http://*/*", 
    "https://*/*" 
], 

두 번째는 URL 일치 패턴이 잘못 될 수 있다고 생각합니다. URL : [ '* : //www.youtube.com/']

+0

그래, 이걸로,'webRequestBlocking'도 추가해야했다. 고마워! – Paradoxis

관련 문제