2015-11-11 3 views
-1

Предположим, у меня есть следующий код.Как запустить Javascript в новом окне?

window.open(url, windowName, "height=500,width=500") 
// This will open a new window with the url. 

myFunction(); 
// Run this function on the newly opened window instead of 
// the old one because I need to find a link on the new page. 

В настоящее время myFunction() застрял в старом окне.

Обновление: новый URL-адрес является другим доменом.

+0

вы не можете. Это позволит вам запускать javascript на произвольных страницах без ведома пользователя, что означает, что вы можете делать очень злонамеренные вещи. Если вы являетесь владельцем 'url', который вы открываете, вы можете предоставить механизм на этой странице, чтобы прочитать javascript из параметров URL, если хотите, и выполнить это, но я бы тоже не рекомендовал это. –

+0

@Christian - Это неверно для URL-адресов из одного домена. –

+0

Zip пытается найти ссылку на новую страницу. Я сомневаюсь, что он проведет это обруч, если он будет контролировать новую страницу (т. Е. Это не его домен). –

ответ

-1

Поместите свой myFunction() в скрипт нового окна.

Затем установите событие onLoad этого окна, чтобы запустить его.

Вы можете получить ссылку на документ вашего окна вызывающего абоненте из нового окна по:

window.opener.document 

Там вы идете с достаточно ссылками, чтобы сделать почти ничего.

Update:

Ваше новое окно должно быть из того же домена. Иначе его против same origin policy браузера.

Пожалуйста, смотрите на этот вопрос:

Ways to circumvent the same-origin policy

+0

@ Downvoter - любая причина? –

+0

Я не тот, кто проголосовал, но я согласен, что это, скорее всего, не отвечает на вопросы. Zip пытается найти ссылку на новой странице. Я сомневаюсь, что он проведет это обруч, если он будет контролировать новую страницу. –

+0

Он добавил эту часть к вопросу, когда я впервые рассказал об этом в своем ответе. –

-2

У вас есть несколько вариантов:

  1. редактировать исходный код веб-страницы, сохраненной в url включить свой собственный код, который вы хотите при открытии веб-страницы. Если вы хотите только этот код, чтобы работать, когда веб-страница открывается с вашего всплывающего окна, вы могли бы назвать URL-адрес что-то вроде «webpage.html? Run_custom_code», то в webpage.html есть JavaScript, который работает только в том случае window.location.href.indexOf('run_custom_code') > 0

  2. вы можете откройте веб-страницу, единственной целью которой является запуск javascript: window.open('javascript:alert()');, хотя на основе вашего редактирования это вам покажется вам нехорошо.

  3. Используйте другой язык, как PHP, где вы можете получить содержимое другого веб-страницы с чем-то вроде $html = file_get_contents($url);

  4. выполняют в ajax request на другой URL (если он находится на том же домене) и скрести результаты найдите свою ссылку.

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