2012-09-23 4 views
0

두 개의 자바 스크립트 기능이있는 두 개의 html 페이지가 있습니다.자바 스크립트 전역 변수 값이 업데이트되지 않았습니다.

page1.html

<a href="page2.html" onclick="ex1()">link1</a> 

page2.html

<a href="#" onclick="ex2()">link2</a> 

jscript1.js CONSOL에서

var abc; 
function ex1() { 
    abc='some text'; 
    console.log(abc); 

} 
function ex2() { 
    console.log(abc); 
} 

전자, undefined 때 내부 ex2() 기능을 받고 있어요. 여기서 내가 뭘 잘못하고 있니?

답변

2

abc 변수가 정의되지 않은 다른 페이지로 이동합니다.

변수를 한 페이지에서 다른 페이지로 영구 렌더링해야합니다.

하나의 솔루션은 로컬 스토리지 사용하는 것입니다

function ex1() { 
    localStorage['abc']='some text'; 
    console.log(localStorage['abc']); 

} 
function ex2() { 
    console.log(localStorage['abc']); 
} 
+1

죄송합니다. 실수로 그 var를 입력했습니다. var가 없어도 작동하지 않습니다. –

+0

하나 이상의 오류가 발생했습니다. 가장 중요한 것을 편집하십시오. –

+0

정말 고마워, 한 동안 붙어있어, localStorage 문제를 해결 :) –

1

을 당신은 페이지에서 페이지로 값을 전달하려고 (page1.html을 - page2.html>)? 그렇다면 스크립트가 모든 페이지로드와 함께 '재설정'되기 때문에 작동하지 않을 것입니다 ...

변수를 전달하려면 쿠키 또는 localStorage를 사용할 수 있습니다 - 쿠키는 더 크로스 브라우저 친화적입니다 (로컬 저장소가 작동하지 않음). 오래된 브라우저, Firefox는 사용자에게 권한을 요청할 것입니다.

1

새 실행 환경을로드한다는 것을 의미하는 페이지를 변경하고 있습니다.

이전 변수가 손실됩니다. 쿠키를 URL의 새 페이지 나 쿠키 또는 저장소를 통해 전송해야합니다.

0

일반적인 HTML 또는 JSP 또는 PHP에 포함되어 있지 않은 경우 곧 제공됩니다. 변수 abc이 다시 시작됩니다. 변수의 범위는 페이지 내에서 제한되며 다른 페이지로 리디렉션 될 수 없습니다.

관련 문제