Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Общие ли переменные у скриптов с разных страниц


Автор: aLEXperimentator 26.1.2015, 17:55
Приветствую, уважаемые форумчане!

Скажите  - являются ли простые JavaScript-переменные, содержащиеся в скриптах, взятых с разных url общими?

Не элементы окна document, не свойства окна, не куки - а именно простые переменные?

Допускают ли политики безопасности скрипту взятому с одной страницы установить переменную a=1 , а потом с другой страницы установить a=2 ?
Это будет один и тот же "a" или два разных?

К примеру на странице:
Код

<javascript src="сайт111/setA.js"></javascript>
<javascript src="сайт222/Aplusplus.js"></javascript>
<javascript src="сайт333/alertA.js"></javascript>


И сами подгружаемые файлы:
сайт111/setA.js : 
Код

setTimeout (function () { var a = 1; }, 10 000);

сайт222/Aplusplus.js :
Код

 setTimeout (function () { a++; }, 20 000);

сайт333/alertA.js : 
Код

setTimeout (function () { alert (a); }, 30 000);

Скажите - что будет выведено после 30-й секунды функцией alert?

Опыт поставить на несколько javascript-url сейчас нет возможности; но нужно узнать - будет ли работать такая конструкция или нет.
Был у кого-нибудь опыт применения? Общее ли "пространство простых переменных" формируют скрипты даже с разных источников?
Спасибо за внимание и ваше терпение smile

Автор: baldina 26.1.2015, 18:28
Цитата(aLEXperimentator @  26.1.2015,  17:55 Найти цитируемый пост)
Не элементы окна document, не свойства окна, не куки - а именно простые переменные?

все "простые переменные" - свойства окна

Добавлено через 1 минуту и 17 секунд
http://jsfiddle.net/sh0jnxmp/

Добавлено через 2 минуты и 41 секунду
Цитата(aLEXperimentator @  26.1.2015,  17:55 Найти цитируемый пост)
setTimeout (function () { var a = 1; }, 10 000);

эдесь a - локальная переменная, и нигде кроме как в этой функции не видна

Автор: aLEXperimentator 26.1.2015, 19:14
Уважаемый baldina , спасибо большое!

А если видоизменить вот так:
Код

<javascript src="сайт111/setA.js"></javascript>
<javascript src="сайт222/Aplusplus.js"></javascript>
<javascript src="сайт333/alertA.js"></javascript>


И сами подгружаемые файлы:
сайт111/setA.js : 
Код

setTimeout (function () { window ["a"] = 1; }, 10 000);

сайт222/Aplusplus.js :
Код

 setTimeout (function () { window ["a"] ++; }, 20 000);

сайт333/alertA.js : 
Код

setTimeout (function () { alert (window ["a"]); }, 30 000);

Я ведь что хочу спросить - не пойдут ли в ход всякие "политики безопасности" дескать код претендует на обращение к каким-то свойствам окна window а сам "пришёл" не с основного url?

Автор: baldina 26.1.2015, 21:18
не пойдут. 
часто подключается множество скриптов - jQuery, google api etc и все они с window работают

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)