У меня есть html-страница, и мне нужно отправить данные (в частности, текст и идентификатор) из некоторого абзаца html на дочернюю страницу, созданную в файле js с помощью window.open("");.
Я уже пытался переместить скрипт из файла js в теги скрипта. Я пытался использовать .innerText и .innerHTML, и оба возвращали Untitled, поле id не отображалось полностью.
function newWindow(){
var nuovaFin = window.open("");
var title = opener.document.getElementById("titleHere").innerHTML;
var id = opener.document.getElementById("idHere").id;
nuovaFin.document.write("<html><title> "+ title +" </title><body> <p> "+ id +"</p> </body></html>");
};
<p id = "titleHere" >ProvaText</p>
<p id = "idHere" >saas</p>
<input type = "button" id = "btnNew" onclick = "newWindow();"> test </input>
Я хочу, чтобы заголовок var отображался как заголовок вновь созданной страницы, как и должно быть, после аргумента document.write, но он отображает «Без названия», а идентификатор из абзаца вообще не отображается.
Я не думаю, что вам нужно указывать opener
, вы уже на начальной странице. Рабочая рабочий пример: jsfiddle.net/k9ma5c0n
Проверьте мой ответ с примерами доступа к обоим: тело документа открытого окна и заголовок
@GrafiCodeStudio на самом деле это решение, я об этом не подумал
@NicolaGalluccio рад слышать, что вы решили, paesano :)
Когда вы вызываете window.open
, вы фактически возвращаете ссылку на новое окно. После этого вы можете манипулировать им так, как вам нужно. Например, приведенный ниже код может открыть новое окно и установить для него заголовок:
function newWindowWithTitle(title){
var newWin = window.open("");
newWin.document.title = title;
};
newWindowWithTitle('My title');
Вот еще один, более сложный пример, где мы можем открыть окно и успешно записать в его документ:
function newWindowWithTitleAndText(title, text){
var newWin = window.open("");
newWin.document.title = title;
const p = document.createElement('p');
p.innerText = text;
newWin.document.body.appendChild(p);
};
newWindowWithTitleAndText('My title', 'some text');
Спасибо за ответ. Я на самом деле не знал, что я не зашел в ссылку на открытую страницу
Пожалуйста, примите ответ, если он решил вашу проблему, спасибо!
Я внес некоторые изменения в код, удалил открывалку из ваших значений title и id, она просто запускается с помощью «document.getElementById», нет необходимости в «opener.document.getElementById». Надеюсь, это поможет.
function newWindow(){
var nuovaFin = window.open("");
var title = document.getElementById("titleHere").innerHTML;
var id = document.getElementById("idHere").id;
nuovaFin.document.write("<html><title> "+ title +" </title><body> <p> "+ id +"</p> </body></html>");
};
</script>
<p id = "titleHere" >ProvaText</p>
<p id = "idHere" >saas</p>
<input type = "button" id = "btnNew" onclick = "newWindow();"> test </input>
ваш сценарий не ясен. кроме того, что такое var title = opener.document.getElementById("titleHere").innerHTML; открывашка в этом? не могли бы вы сделать jsfiddle или jsbin и опубликовать его здесь?