Общий файл js для нескольких htmls и ссылка на глобальную переменную - PullRequest
0 голосов
/ 02 февраля 2012

Мне нужно сослаться на глобальную переменную в нескольких html-файлах, каждый из html-файлов multitilpe ссылается на общий js-файл.

index.html sub1.html sub2.html

на каждой html-странице js включен в тег head

<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<link rel="stylesheet" href="/css/Main.css" type="text/css"/>
<script src="/js/Main.js" ></script>
</head>

Переход от одного html к другому html осуществляется с помощью функции js, например.

скажем, от index.html до sub1.html

window.location.href='/forms/sub1.html';

Я объявил глобальную переменную globalCount, чтобы проверить, сколько переходов было выполнено в глобальной области видимости Main.js

var globalCount=1;

и увеличивается в функции навигации.

Но для каждой html-страницы переменная globalCount повторно инициализируется в 1, даже если файл Main.js НЕ загружается несколько раз.

Я попытался объявить через window.globalCount, не повезло.

Любой простой способ иметь общую глобальную переменную для нескольких htmls, но в одном и том же файле js.

Надеюсь, вы понимаете вопрос.

Ответы [ 2 ]

2 голосов
/ 02 февраля 2012

Ваш JS-файл (или любой JS-файл) не загружается и запускается самостоятельно;он не действует как контроллер, который остается в памяти, пока страницы HTML загружаются и заменяются.Объем и жизненный цикл кода во включенных JS-файлах по существу такой же, как и для кода, включенного встраиваемым в HTML-страницу, поэтому при переходе на новую страницу JS исчезает, даже если новая страница ссылается на тот же самый включаемый файл.Как вы уже видели.

Если вы используете cookie для хранения значения вашей переменной согласно ответу Мэтта Ло, ваш JS-скрипт может получить значение оттуда.Или вы можете добавить его в качестве параметра строки запроса в конце URL-адреса каждой страницы (например, 'sub1.html?globalCount=' + globalCount) и получить к нему доступ оттуда.

(Или вы можете отправить значения и использовать некоторый вид на стороне сервера).технология, чтобы отразить их обратно на новой странице, но это излишне.)

2 голосов
/ 02 февраля 2012

Simple! Используйте куки https://developer.mozilla.org/en/DOM/document.cookie

Это позволит вам получить доступ к вашей переменной через систему пользователя.

...