2011-08-09 2 views
1

저는이 작은 일에 상당히 문제가 있습니다. 누군가가 나를 도울 수 있기를 바랬습니다.selectbox onchange에서 chrome.cookies.set을 실행하십시오.

<select id="routeBox" name="routeBox" 
    onchange="javascript: getRoute(route, routeBox.selectedIndex); 
    setCookies('http://127.0.0.1/*', 'routeCookie', routeBox.options.selectedIndex);"> 
    </select> 

첫 번째 기능은 예상대로 작동하지만 두 번째 기능인 setCookies는 실행되지 않습니다. 이 기능은 스크립트 태그의 선택 박스 위에 배치됩니다

function setCookies(domain, name, value) { 
    chrome.cookies.set({"url": domain, "name": name, "value": value});   
    alert("cookie set"); 
    } 

: 여기 는 setCookies입니다.

도움이 될 것입니다.

감사

+0

콘텐츠 스크립트입니까? – serg

+0

이번에는 Serg :) 내 background.html. 기능은 개별적으로 작동하지만 onchange에서 실행할 수 없습니다. – infinityLoop

+0

'경로'는 어디에 정의되어 있습니까? 그것은'getRoute'에 전달됩니다. –

답변

0

귀하의 코드는 소리 표시는 당신의 API는 내가 유일하게 가능한 당신이 매니페스트에 "cookies" permission를 선언하는 것을 잊었다 상상할 수있는 올바른 보인다.

+0

불행히도 그렇지 않습니다. 내 쿠키 선언에 올바른 주소가 포함되어 있지 않은 한. "permissions": [ "cookies", "http://127.0.0.1/*" ], – infinityLoop

+0

호스트 사용 권한에'* : // 127.0.0.1'을 사용해 보셨습니까? – Alasdair

0

몇 가지 :

  • route 전역 변수가 아니라면, 그것은 현재 onchange를 범위에 정의되지 않은 것.
  • 키워드가있는 routeBox 객체를 참조합니다.
  • javascript: 텍스트를 onchange 속성에 추가 할 필요가 없습니다.

다음은 수정 된 코드,이다 :

<select id="routeBox" name="routeBox" 
     onchange="getRoute(route, this.selectedIndex); 
     setCookies('http://127.0.0.1/*', 'routeCookie', this.selectedIndex);"> 
</select> 
+0

키워드에 대한 조언을 보내 주셔서 감사합니다. 실제로 값 대신 selectedIndex가 필요하지만 setCookies가 selectBox의 onchange를 실행하지 않는 것 같은 문제는 여전히 남아 있습니다. 위대한 의견은 지금까지, 고마워! – infinityLoop

+0

@infinityLoop, 오류가 발생합니까? –

+0

오류가 없습니다. 필자는 함수에 경고를 배치했지만 실행하지만 chrome.cookies.set은 아무 것도하지 않는 것 같습니다. 브라우저 옵션에서 쿠키를 검사하여 설정했는지 확인했습니다. – infinityLoop

관련 문제