2015-01-19 6 views
0

Скажем, у меня есть HTML-строку, которая будет послана в новом окне/браузера, используя следующий метод:Передача функции JavaScript для запуска в новом объекте окна

var htmlStr = 
     "<div><button id='copy-all'>Copy all contents</button></div>" + 
     "<div id='contents-container'>" + 
     " (lots of contents are placed here...) " + 
     "</div>" 
    , newWin = window.open("", "Test", "width=1000, height=800, scrollbars=1, resizable=1") 
    , doc = newWin.document; 

doc.write(htmlStr); 

Как вы можете видеть, что будет кнопку (#copy-all) вместе со всем содержимым, когда строка HTML передается в новое окно и отображается.

Вопрос: как я могу прикрепить функцию JavaScript (с использованием или без использования jQuery) к кнопке, которая позволяет мне манипулировать DOM, помещенным внутри элемента div (#contents-container)? Я попытался включить литерал функции как часть переменной htmlStr, но она не кажется жизнеспособной.

+0

как 'doc.getElementById (" копия -all '). onclick = function() {alert (' hi ')}; '? – Fabricator

+0

вместо использования .write use .insertAdjacentHTML; –

ответ

1

С JQuery Я хотел бы сделать это следующим образом:

$('#copy-all', doc).on('click', function() { 
    $('#contents-container', doc).html('test'); 
}); 

Вот рабочий JSFiddle: http://jsfiddle.net/qd8dybg0/2/ (не забудьте отключить блокировку всплывающих окон)