2015-02-14 3 views
1

Если у меня есть HTML-документ, такие как:Как я могу ссылаться на скрипт на другой странице?

<!DOCTYPE html> 
<head> 
    <!-- title, style, etc. --> 
</head> 
<body> 
    <p id="content">Content</p> 
    <button onclick="">Change Content</button> 
</body> 

возможно связать со скриптом в разном HTML документе (обратите внимание на <script> тег в заголовке документа):

<!DOCTYPE html> 
<head> 
    <!-- title, style etc. --> 
    <script> 
     function changeContent() { 
      document.getElementById("content").innerHTML = "New Content"; 
     }; 
    <script> 
</head> 
<body> 
    <!-- content --> 
</body> 

Для того, чтобы кнопка кнопки в теле первого документа могла быть изменена на "changeContent()" без помещения функции changeContent() в начало первого документа?

EDIT: Что делать, если первый документ находился в пределах ?

ответ

1

Вы можете добавить эту функцию в отдельный файл JavaScript, который связан (используя тег скрипта с атрибутом src) из обоих файлов html.

В противном случае функция не будет определена на текущей странице.

+0

Проблема в том, что я не могу этого сделать. – BobTheAwesome

+0

@BobTheAwesome и почему вы не можете это сделать? –

+0

Возможно, было бы интересно узнать, если, если вы поместите весь этот URL-адрес html-файла в качестве src тега скрипта, функция будет определена на вашей странице. Я никогда этого не пробовал. Но похоже, что было бы проще скопировать функцию локально. –

0

Что вы можете сделать, вы можете получить содержимое страницы (страницы с помощью js), если оно не на вашем сервере. В противном случае вы можете загрузить внешний JS файл, как:

var imported = document.createElement('script'); 
imported.src = '/path/to/imported/script'; 
document.head.appendChild(imported); 

в зависимости, если файл находится на сервере или нет ...

Если его на внешнем сервере, вы могли бы попытаться получить содержание и сократить Everyting ofs до <script> и после </script> что-то вроде грязного, но я думаю, что это возможно. Чем вы могли бы создать сценарий temp динамически, как образец выше ... и чем использовать щелчок ...

Удобно работать с jquery. Кроме того, необходимо использовать Ajax в этом случае :)

0

Я проверил следующее:

HTML-файл 1 (test_1.html)

<!DOCTYPE html> 
<head> 
    <!-- title, style, etc. --> 
    <script src="test_2.html"></script> 
</head> 
<body> 
    <p id="content">Content</p> 
    <button onclick="changeContent()">Change Content</button> 
</body> 

HTML-файл 2 (test_2 .html)

function changeContent() { 
    document.getElementById("content").innerHTML = "New Content"; 
}; 

Ну, это не чистое решение, но в данном случае это на самом деле работает.

Примечание: Все, что я сделал, это включить файл .html вместо файла .js. И вы можете использовать синтаксис не-html в этом документе test_2.html.

+0

Хорошо, это решает _part_ проблемы ... Но что, если первый документ находился в '