2014-01-26 4 views
-1

У меня проблема с моим JavaScript, когда я помещаю его в JSFiddle, он отлично работает. Но это не будет работать на местном уровне? Вот сценарий: http://jsfiddle.net/4Ukkz/Начальный текстовый дисплей javascript

var String = "preacher preacher, 5th grade teacher"; 
document.getElementById('text').innerHTML=String; 

Так что проблема в этом. В JSFiddle будет отображаться текст, но локально ничего не будет отображаться. Примечание. Он работает в скрипке. но не на моем компьютере

+0

Вы пытаетесь манипулировать DOM, прежде чем будете готовы. Скрипка запускает js, используя событие onLoad. –

+0

Как заметил кто-то (похоже, они удалили свой ответ), создание переменной «String» - это плохая форма. String - это глобальный объект/конструктор, предоставленный в JavaScript, путем переопределения его, вы можете столкнуться с большими проблемами, если кто-то пытается использовать глобальную строку в той же области. Я предполагаю, что tl; dr; не использует переменную, называемую «String», называет ее чем-то другим. – Aishwar

ответ

1

Может быть, у вас нет файла script.js с кодом javascript, который вы вставили в скрипке?

И переместите элемент сценария после вашего тела. Таким образом, ваш JavaScript-код запускается после того, как были созданы все элементы в теле.

Так что-то вроде этого:

<html> 
<title>hi</title> 
<head> 
<link rel="stylesheet" type="text/css" href="style.css" /> 
</head> 
<body> 
<div id="text"></div> 
</body> 
<script type='text/javascript' src='script.js'></script> 
</html> 
2

В JSFiddle, ваш код автоматически обернут

window.onload = function() { 
    // your code 
}; 

Это необходимо потому, что в вашем коде, script.js включен выше <div id="text"></div>. Если вы не дождались появления этого элемента, document.getElementById('text') вернет null, и попытка установить innerHTML не удастся.

Решение, чтобы обернуть ваш код, как описано выше или переместить script тег ниже div.

Смежные вопросы