2013-04-02 2 views
0

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

<script type="text/javascript">// <![CDATA[ 
function mySearch() 
{ 


popupWindow = window.open(

'http://www.websitehere.com','popUpWindow','height=768,width=1024,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=no,menubar=no,location=no,directories=no,status=yes') 


popupWindow.focus(); 

popupWindow.searchpath1 = 'test value'; 


} 
// ]]></script> 
<center><form><input name="searchTxt" type="text" /><br />&nbsp; <input onclick="mySearch()" value="Search" type="button" /></form></center> 

textBoxId будет идентификатором текстового поля поиска в только что открытом окне.

Если что-то не имеет смысла, дайте мне знать.

здесь исходный код для текстового поля внешнего сайта:

<input title="Search Term" type="text" name="searchpath1" id="searchpath1" maxlength="255" size="25" style="width: 300px;" value=""/> 
+0

Вы и ваш сайт, и источник всплывающего окна в том же домене? – PSL

+0

@PSCoder нет, всплывающее окно является внешним сайтом – user818502

+0

Hm. Возможно, вы не можете этого сделать, если это другой домен. – apast

ответ

1

попробовать что-то вроде

popupWindow.document.getElementById('textBoxId').value = 'test value'; 

вместо

popupWindow.textBoxId = 'test value'; 
+0

Я пробовал много вариантов этого. Он просто не имеет никакого эффекта вообще , Спасибо за ответ, хотя! – user818502

+0

Я думаю, что это невозможно тогда :) – dimaninc

+0

aww bummer. Я действительно думал, что это будет очень аккуратно! Ah well – user818502

1

Вы должны получить входной текст DOM «textBoxId» и установить свойство «value» этого полученного элемента.

Эта линия является неправильным

popupWindow.textBoxId = 'test value'; 

Используйте следующие строки, чтобы заменить его:

var targetTextField = popupWindow.document.getElementById('textBoxId'); 
targetTextField.value = "test value"; 

Здесь я переписал полное определение функции, чтобы оценить предложенное решение. Попробуйте и сообщите нам, как это работает! [] s

function mySearch() 
{ 
    popupWindow = window.open('file:///tmp/form.html','popUpWindow','height=768,width=1024,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=no,menubar=no,location=no,directories=no,status=yes') 

    if (window.focus()) 
     popupWindow.focus(); 

    var targetTextField = popupWindow.document.getElementById('textBoxId'); 
    targetTextField.value = 'test value'; 
    targetTextField.focus(); 
} 
+0

спасибо за ваше решение, я попробовал, но он, похоже, не заполнил поле. Кажется, что код javascript останавливается после того, как он открывает новое окно. Я приложу код, который я получил от исходного кода сайта (я бы просто дал вам ссылку, но ее доступный только локально в сети – user818502