2015-01-20 4 views
0

Поскольку я начал использовать html-templatefile для своих элементов навигации, у меня нет одного из моих сценариев для выполнения (я могу выполнить его через консоль). Я экспериментировал с функциями нагрузки, но даже это не работало. Моя проблема в том, что я мало понимаю порядок выполнения, и если я каким-то образом блокирую свой скрипт. Я тоже не получаю сообщений об ошибках, и когда html-шаблон не используется (т. Е. Структура навигатора включена во все остальное в том же html-файле), страница загружается как следует. Так что что-то там испортило. И я могу назвать это и с консоли.Javascript не выполняется при включении html-шаблона

(Я пробовал различные способы, но ничего действительно не работало, кроме включения шаблона в документ и чего я бы хотел избежать. Эта настройка является одной из многих). Надеюсь, кто-то может увидеть ошибки, которые я делаю на месте. Я также вырезал som css, для удобства чтения.

Редактировать: Бросил js из окна, поскольку ASP был найден доступным. Решила его примерно через полчаса, используя асп.

+0

Есть элементы 'div' вне/перед тегом' body', является ли это намеренным? –

+0

Ваш код недействителен. Поместите элементы DOM в тег тела. – Dom

+0

Да, ваше право. В этом случае это не проблема (мои реальные файлы имеют их в правильном порядке). – ErrantBard

ответ

0

Хорошо, я не мог заставить его работать так, как я хотел, но оказалось, что мы жерех включен на нашем сервере, так что, когда я переключился на что я получил его на работу красивая примерно за полчаса.

И это лучший способ, я подозреваю, с точки зрения лучшей практики.

Спасибо за ответы.

1

Код, который вы пытаетесь установить в $("#pageContainerId").load("navbarTemplate.html");, находится за пределами тега тела, и большинство браузеров вырезают это.
Попробуйте следующее:

 <script src="http://code.jquery.com/jquery.js"></script> 
     <script type="text/javascript" src="d3.min.js"></script> 
     <script src="Bootstrap/js/bootstrap.min.js"></script> 

     <script type='text/javascript'> 
      $(function(){ 
       $("#pageContainerId").load("navbarTemplate.html"); 
      }); 
     </script> 
    </head> 




<body id="bodyCanvas"> 
<div class="masthead"> 
    <div class="container">   

    </div> 
</div> 
<div class="container Override" id ="pageContainerId" > 



</div> 
    <script> 
     Here goes code.... 
    </script> 
</body> 

</html> 

Кроме того, как сценарий на вершине DOM не может быть загружена в то время, попробуйте следующее:

$(document).ready(function(){ 
       $("#pageContainerId").load("navbarTemplate.html"); 
      }); 
+0

Да, они должны :) Я, кажется, испортил структуру во время моего эксперимента. Тем не менее, это не проблема здесь по крайней мере. Я все еще не получаю никакого результата от js, не вызывая его из консоли. – ErrantBard

+1

Я отредактировал anwser –

+0

Thx, я надеялся, что это поможет, но, увы, этого не произошло. Он по-прежнему не загружается. Добавлен вызов функции, который я попытался использовать для исходного сообщения, если он может выделить проблему. – ErrantBard

0

DOM элемент должен ВНУТРИ ТЕЛА TAG

<body id="bodyCanvas"> 
     <div class="masthead"> 
    <div class="container">   

    </div> 
</div> 
<div class="container Override" id ="pageContainerId" > 



</div> 

</body> 
+0

Да, они должны :) Я, кажется, испортил структуру во время моего эксперимента. Тем не менее, это не проблема здесь по крайней мере. Я все еще не получаю никакого результата от js, не вызывая его из консоли. – ErrantBard

1

Просто разместите свои элементы DOM внутри тега тела. Всегда визуализируйте скрипт в конце тела и добавьте файлы async javascript в готовый документ (или, по крайней мере, это мой взгляд на вещи).

<html> 
    <head> 
     <link href="Bootstrap/css/bootstrap.min.css" rel="stylesheet"> 
    </head> 


    <body id="bodyCanvas"> 


    <div class="masthead"> 
     <div class="container">   

     </div> 
    </div> 
    <div class="container Override" id ="pageContainerId" > 



    </div> 
     <script> 

<script src="http://code.jquery.com/jquery.js"></script> // create a local copy of jquery and other async javascript files you can load at $(document).ready(function(){ //here append async scripts like google maps }); 

     <script type="text/javascript" src="d3.min.js"></script> 
     <script src="Bootstrap/js/bootstrap.min.js"></script> 

     <script type='text/javascript'> 
      $(function(){ 
       $("#pageContainerId").load("navbarTemplate.html"); 
      }); 
     </script> 
      Here goes code.... 
     </script> 
    </body> 
</html> 
+0

Спасибо за ответ, у меня были элементы dom внутри тега тела раньше, но когда я экспериментировал, я, кажется, испортил файл. Сказанное, что все равно не будет выполнено, оно все еще не выполняет js (или, может быть, но я не получаю никаких результатов).Если я вызову скрипт с консоли, диаграмма и другие вещи появятся как следует. Ошибок нет (кроме ошибки глификона, но это не связано) – ErrantBard

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