2010-02-06 2 views
2

Как выполнить JavaScript, записанный на одной странице aspx с другой страницы aspx?Как выполнить запись JavaScript на одной странице с другой страницы?

+0

Насколько мне известно, вы не можете сделать это. Если обе страницы принадлежат к одному домену, и вы открыли первую страницу со второй страницы, тогда ... нет, вы все еще не можете выполнить javascript - возможно, вы можете получить доступ к DOM с помощью 'document.referer' – Amarghosh

+0

. Будьте более конкретными. Вы хотите: Есть сценарий со страницы A Изменить страницу B? Есть сценарий со страницы Заимствовать функцию или две со страницы B для работы на странице A? Что-то еще? Единственный способ сделать что-либо подобное, как сказал Амархош, если вы открыли страницу B со страницы A (или наоборот). Тогда есть определенные вещи, которые вы можете сделать. – BobS

ответ

4

Вы не можете этого сделать. Вместо написания JavaScript на страницу, записать его в файл .js (т.е. script.js), а затем ссылаться на .js файл с тега сценария:

<script type="text/javascript" src="script.js"></script> 
0

В одной странице открыть другую страницу в скрытый IFrame и выполнить javascript-код в скрытом iframe как document.getElementById ('targetFrame'). contentWindow.targetFunction();

Примечание: обе страницы должны обслуживаться из одного домена, иначе будут проблемы с XSS.

1

Короткий ответ, что вы не можете.

Я не уверен, почему вы спрашиваете об этом, но если ваша мотивация - это просто повторное использование кода JavaScript, вы можете фактически вывести код в отдельный .js-файл и называть его с разных страниц, делая

<script type="text/javascript" src="your_javascript_file.js"></script> 

на этих страницах.

+0

Thnks для ответа Вещь есть страница A.aspx есть скрипт в том, что , который создаст вкладку. от A i m, открытие другой страницы B.aspx. что я хочу, когда я нажимаю кнопку в B.aspx. Сценарий в A.aspx должен выполняться. или же ссылку в A.aspx, которую называет этот скрипт, должен выполняться ... – jazz

+0

hmm. Вопрос в том, что сценарий в А.aspx, что он должен делать? –

0

Это возможно только при наличии отношений между родителями и дочерними элементами. Например, если A.aspx является вашей родительской страницей, и вы открываете страницу B.aspx, используя javascript window.open(), тогда B.aspx будет дочерней страницей. После этого вы можете вызвать A.aspx Javascript функция из B.aspx с помощью window.opener вместо window.parent, который я отправил ранее.

Спасибо.

+0

'window.parent' предназначен для доступа к родительскому элементу из фрейма. 'window.opener' - это то, что вам нужно. –

+0

Спасибо, что исправил меня. – Hoque

1

Если вы используете window.open, чтобы открыть новое окно, вы можете использовать window.opener объект, чтобы получить ссылку на родительский объект из нового окна и window.open сама возвращает ссылку на открытой странице. Пример:

Страница A:

var newWin = window.open("pageB.aspx"); // ref to pageB is stored in var newWin 
newWin.onload = function() 
{ 
    newWin.helloB(); 
} 
function helloA() 
{ 
    // Run the alert method inside the new window 
    newWin.alert("Hello from page A!"); 
} 

страница B:

var opener = window.opener; // Ref to pageA is stored in var opener 
opener.helloA(); // call to opener's helloA function 
function helloB() 
{ 
    // Run the alert method inside the opener window 
    opener.alert("Hello from page B!"); 
} 

// We can do the same thing in an event that occurs on this page 
var btn = document.getElementById("pageBButton"); 
btn.onclick = function() 
{ 
    window.opener.helloA(); 
} 
+0

Это хорошо, но, как указано в других сообщениях, обе страницы должны находиться в одном домене, чтобы это работало. –

+0

@SerjSagan: Ну, да, но это в значительной степени само собой разумеется ;-) –