2015-07-23 1 views
0

Так в навигации файл JavaScript, у меня есть это, который имеет атрибут OnClick события, чтобы загрузить новую страницу:Как получить OnClick работать в отредактированном innerHTML

function NAVLOAD() { 
    // Runs when you load page. 
    document.getElementById("main nav").innerHTML = '<table class = "navbar"><tr>'+ 
    '<th onclick = "goTo("main_page")"> Home </th>'+ 
    '<th onclick = "goTo("archive")"> Archive </th>'+ 
    '<th onclick = "goTo("about")"> About </th>'+ 
    '<th onclick = "goTo("faq")"> FAQ </th>'+ 
    '<th onclick = "goTo("fanart")"> Fanart! </th>'+ 
    '</tr>'+  
    '<tr><td class = "spacer"></td></tr></table>'; 
} 

function goTo(page) { 
    window.location.assign(""+page+".html"); 
} 

И, в HTML-коде, использует это выглядит так:

<html> <!-- Stuff --> 
<body onload = "NAVLOAD();"> <div id = "main"> 
    <!-- Stuff --> 

    <script src = "HTL_navigation_script.js"></script> 
    <div id = "main nav" class = "comic"></div> 
<!-- Some other stuff --> </body></html> 

Таблица навигации отображается правильно, но ссылка ничего не делает, когда я нажимаю на нее! Тем не менее,, когда я помещал HTML-файл в файл NAVLOAD() в свой HTML-файл и импортировал только метод goTo() из файла, ссылки действительно работают! Что здесь не так?

+0

Что ваше рассуждения для создания меню навигации с Javascript, и почему вы используете таблицу для этого? – APAD1

+0

У меня есть несколько страниц с той же навигационной панелью, и бесплатный веб-хостинг, который предоставляет моя школа, не дает SSI или PHP. – Relma2

+0

Может ли меню навигации часто меняться? Если нет, лучше было бы просто жестко привязать навигацию к каждой странице. Кроме того, вам не следует использовать таблицу для структурирования навигации, таблицы для табличных данных и ее очень редко использовать в этот день и в возрасте. Как правило, [неупорядоченные списки] (http://www.w3schools.com/tags/tag_ul.asp) используются для структурирования навигации. – APAD1

ответ

-1

Необходимо выполнить следующую коррекцию в вашем файле JS, содержащем метод NAVLOAD(). Измените кавычки из двойных кавычек ("") на одинарные кавычки (''), чтобы сделать это, вам нужно будет добавить escape-символ ('\') также.

function NAVLOAD() { 
    // Runs when you load page. 
    document.getElementById("main nav").innerHTML = '<table class = "navbar"><tr>'+ 
    '<th onclick = "goTo(\'main_page\')"> Home </th>'+ 
    '<th onclick = "goTo(\'archive\')"> Archive </th>'+ 
    '<th onclick = "goTo(\'about\')"> About </th>'+ 
    '<th onclick = "goTo(\'faq\')"> FAQ </th>'+ 
    '<th onclick = "goTo(\'fanart\')"> Fanart! </th>'+ 
    '</tr>'+  
    '<tr><td class = "spacer"></td></tr></table>'; 
} 

Надеется, что это помогает :)

+0

Нет, это плохо. – Relma2

+0

Работа с моей локальной копией ... Использовали ли вы инструменты для разработчиков. Чтобы отладить проблему в конце? –