2010-08-18 3 views
1

현재 HTML과 JavaScript를 사용하여 내 홈페이지에 매우 작은 양식을 만들고 있습니다. 나는 꽤 우스운 방법으로 우연히 회피 할 수 있다고 확신하는 문제에 봉착했다. 그러나 나는 왜이 오류가 나타나는 지에 관심이있다.onsubmit에서 호출 된 함수에서 window.location을 사용하는 데 문제가 있습니다.

<FORM name="form1" onsubmit="submitTheScript()"> 

기능 "submitTheScript()"헤더에 배치되고 읽습니다 :

setCookie("F_GivenSum", GivenSum); 
window.location="LastScreen.html"; 

"이기에, setcookie를

나는 다음과 같은 방법으로 지정 내 페이지에서 양식을 가지고() "는 기본적으로 쿠키를 만드는 기능입니다 :).

이제 코드의 마지막 줄에 문제가 발생합니다. 쿠키를 설정 한 후 사용자를 다른 페이지로 보내려고합니다. (입력 값이 괜찮은 일부 컨트롤을 수행하지만 여기서는이 부분을 건너 뜁니다.) FireFox에서 다음 오류를 표시합니다.

uncaught exception: [Exception... "Cannot modify properties of a WrappedNative" nsresult: "0x80570034 (NS_ERROR_XPC_CANT_MODIFY_PROP_ON_WN)" location: "JS frame :: chrome://global/content/bindings/autocomplete.xml :: onxblpopuphiding :: line 827" data: no] 

나는이 기능을 onsubmit 명령에서 내 방식대로 호출 할 수 없다고 생각합니다. 그러나 나는 그 이유를 알지 못합니다.

+0

"다른"쪽이 같은 도메인에 있습니까? –

+0

잠시 동안 setCookie를 제거하는 것은 어떻습니까? 그리고 다시 테스트하십시오. 이 오류가 다시 발생했는지 여부를 확인하십시오. – ppshein

+0

Yves M .: 네, 맞습니다. ppshein : 불행히도 그게 도움이되지 못했습니다. 같은 오류. – Speldosa

답변

1

좋아, 빠른 테스트를했고, 당신과 같이 자바 스크립트를 통해 태그의 onsubmit 이벤트 핸들러를 할당 할 필요가 있음을 발견 :

document.getElementById("myform").onsubmit = doSubmit; 

    function doSubmit() { 
     document.cookie = "F_GivenSum=200"; 

     window.setTimeout(function() { 
      window.location = ('test2.html'); 
     }, 20); 

     return false; 
    } 

은 FF에서 오류를 포기하지 않았다.

+0

양식 태그는 어떻게 보이나요? onsubmit 명령이 있습니까? – Speldosa

+0

아. 나는 잘못된 부분에 집중했다. 방금 setTimeout 명령을 포함하도록 코드를 수정했으며 모든 것이 원활하게 진행되었습니다. 도와 줘서 고마워! "흠". 나는 이것이 도움이 된 이유를 정말로 이해하지 못한다. – Speldosa

관련 문제