Я имею в виду, может ли объявленная и инициализированная переменная / массив использоваться в HTML вне тегов
Два способа сделать это. Это лучший вариант:
<script type="text/javascript">
// make sure to do this onLoad, for example jQuery's $()
var foo = array('placeholder1', 'placeholder2');
document.getElementById("fooHolder").innerHTML = foo.toString();
</script>
...
<p id="fooHolder"></p>
Или вы могли бы сделать это следующим образом (который, как указывает Марсель, не работает в XHTML и в любом случае его не следует использовать):
<p><script type="text/javascript">document.write(foo)</script></p>
Вы можете сделать что-то вроде этого:
<script>
var str = 'hello there';
document.getElementById('para').innerHTML = str;
</script>
где элемент имеет указанный идентификатор:
<p id="para"></p>
Излишне многословно, но с использованием стандартных методов DOM.
<script>
window.onload = function(){
// you do not need to initialize like this, but I like to
var bar1 = new String('placeholder1');
var bar2 = new String('placeholder2');
var foo = new Array();
// populate the Array with our Strings
foo.push(bar1);
foo.push(bar2);
// create an array containing all the p tags on the page
// (which is this case is only one, would be better to assign an id)
pArray = document.getElementsByTagName('p');
// create a text node in the document, this is the proper DOM method
bar1TextNode = document.createTextNode(foo[0].toString());
// append our new text node to the element in question
pArray[0].appendChild(bar1TextNode);
};
</script>
<body>
<p></p>
</body>
Я не думаю, что вы можете получить доступ к javascript из html, но вы можете установить innerhtml объекта dom через javascript, так что вы, возможно, захотите пойти другим путем. Я нашел первый поиск в Google, поэтому не могу обещать, что он хорош, но у него есть быстрый образец.
вы просто не можете получить доступ к переменной javascript вне тега script, это потому что,
Это единственный прямой способ получить к нему доступ в другом месте вашей страницы. Открыв другой тег скрипта и распечатав его.
Вы также можете использовать такие методы, как innerHTML, чтобы куда-то поместить значение.