У меня есть один файл test.html
с двумя <script>
тегами. Мне нужно разделить переменную от одного к другому .. кодJavascript - Share Переменные по разным <script> теги
Пример:
<script type="text/javascript">
var test = false;
function testing() {
test = true;
alert('I am inside..');
}
testing();
</script>
...
<script type="text/javascript">
if (test == true) {
alert('working');
} else {
alert('failed');
}
</script>
Выход всегда:
Я внутри ..
не удалось
Я также попытался использовать window
класс, но это не имеет значения .. (window.test
)
Что я должен сделать, чтобы получить «рабочую» предупреждение?
Спасибо, если кто-нибудь может мне помочь. Я видел некоторые подобные вопросы, но ответы не были для меня решением.
EDIT:
Исходный код (упрощенно):
<head>
...
<script type="text/javascript" src="detectblocker.js"></script>
<!-- GitHub: https://github.com/sitexw/BlockAdBlock/ -->
...
</head>
<body>
<script type="text/javascript">
var blocker = false;
function adBlockDetected() {
blocker = true;
alert('inside');
}
if(typeof blockAdBlock === 'undefined') {
adBlockDetected();
} else {
blockAdBlock.onDetected(adBlockDetected);
}
blockAdBlock.setOption({
checkOnLoad: true,
resetOnEnd: true
});
</script>
<div class="header">
...
</div>
<div class="content_body">
<div class="requirs">
<ul>
...
<script type="text/javascript">
if (blocker == true) {
document.write("<li>enabled!</li>")
} else {
document.write("<li>disabled!</li>")
}
</script>
...
</ul>
</div>
</div>
...
</body>
Выходом является alert()
"внутри" и <li>
"отключено" .. (Blocker включено ..). Единственное различие я вижу в конце первого <script>
тега:
blockAdBlock.setOption({
checkOnLoad: true,
resetOnEnd: true
});
Так почему же фрагмент работает и мой код не? Смешение ...
Я преобразовал ваш фрагмент в живую демонстрацию и ... это работает. Какая бы проблема ни была, вы не выставили ее в своем вопросе. – Quentin
Вы можете использовать localStorage. Хотя я не чувствую, что это элегантное решение вашей проблемы. – user2085143
@ user2085143 - localStorage используется для обмена данными между разными страницами (или загрузками одной и той же страницы). Это не для обмена данными между разными сценариями на одной странице. – Quentin