Я имею дело со старым сайтом разработчика и кодом.
Существует глобальная функция печати, которую написал парень, которая в основном распознает любое новое открывающееся окно (из любого метода) и "href.match" - имя домена ... сценарий затем при необходимости применяет таблицу стилей печати и запускает window.print.
Все это делается из глобального скрипта, который находится на каждой странице и содержит некоторые другие функции.
Мне надоело писать кейсы для каждой добавленной страницы о том, что я хочу выйти из этой функции. Также, если я напишу предложение NOT для определенной страницы, любая последующая страница, открытая в домене в дочернем окне, получит эту функцию печати.
Есть ли способ "разрушить" наследство в этом новом окне? Как сделать это окно НЕ дочерним по отношению к родителю, который его породил?
addEvent(window, 'load', function () {
var printBtn = document.getElementById('print-page');
if (window.opener && window.opener.location.href.match('domainnamehere')) {
var printCSS = document.createElement('link');
var a = document.getElementsByTagName('a');
printCSS.href = 'css/print.css'
printCSS.setAttribute('type', 'text/css');
printCSS.setAttribute('rel', 'stylesheet');
document.getElementsByTagName('head')[0].appendChild(printCSS);
for (var i = 0; i < a.length; i++) {
a[i].href="";
a[i].onclick = function () { return false; };
a[i].style.cursor = "default";
}
window.print();
} else if (printBtn){
printBtn.onclick = function () {
var printWindow = window.open(window.location, 'printwindow', 'resizable,width=800,height=800,scrollbars');
return false;
};
}
});