2015-07-13 2 views
1

По существу, я пытаюсь открыть новое окно на основе выбранных изображений с исходной страницы.Как открыть новое окно с CSS и JavaScript уже есть?

Здесь есть fiddle, в котором содержится то, что у меня есть до сих пор, но я хотел бы иметь возможность открывать новое окно с помощью другого файла CSS и JavaScript.

Текущий JavaScript:

var tickBoxHTML = "<div class='tickBox unselected'></div>"; $("img").after(tickBoxHTML); 

$(".tickBox").click(function() { 
    $(this).toggleClass("tickBox selected", "tickBox unselected"); }); 

$("#compare").click(function() { 

    var compareText = "<p>Selected images for comparison:</p>"; 

    $(".selected").each(function() { 
     var thisSrc = $(this).prev("img").attr("src"); 
     var thisAlt = $(this).prev("img").attr("alt"); 
     compareText += "<div><img src='" + thisSrc + "' alt='" + thisAlt + "' /></div>"; 
    }); 

    compareText += "<br><button onClick='window.close()'>Close Window</button>" 

    var compareWindow = window.open(); 
    compareWindow.document.body.insertAdjacentHTML("beforeend", compareText); 

}); 
+0

Вы можете передать некоторые аргументы метода [window.open] (https://developer.mozilla.org/en-US/docs/Web/API/Window/open). – Teemu

+0

Вам действительно нужно новое окно? Если css уже существует внутри страницы, почему бы просто не манипулировать текущим отображением страницы? – charlietfl

+0

@Teemu Какие аргументы конкретно? – LADransfield

ответ

0

Просто используйте метод window.open() со значениями

window.open(URL, "_blank", strWindowFeatures); 

strWindowFeatures для веса или высоты для нового window.for например

window.open(URL, "_blank",height=570,width=520); 
1

Вы можете загрузить страницу, содержащую JS и CSS, и все элементы, используемые на обычной веб-странице, из sa me domain, а затем подождите onload только что созданного окна, и после этого добавьте контент. Что-то вроде этого:

$('#compare').click(function() { 
    var win = $(window.open('URL_here', 'win')); 
    win.on('load', function() { 
     $(this.document.body).append(compareText); 
    }); 
}); 
+0

Не похоже, что это можно сделать. Я попробовал это и добавил 'console.log()' после каждой строки, чтобы понять, где она застревает. Я не получаю ничего после 'win.on ('load', function() {' line. – LADransfield

+0

Если вы тестируете [localy with Chrome] (http://stackoverflow.com/questions/5660116/ unsafe-javascript-try-to-access-frame-in-google-chrome) ... В противном случае это так, как загружать контент в 'iframe' и получать ссылку на« окно »в нем. – Teemu

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