2011-02-10 4 views
1

Я пытаюсь открыть новое окно и написать некоторые элементы и тег javascript.Как открыть новое окно сгенерированный код javascript?

Код выглядит,

var OpenWindow = window.open("ImagePreview.html", "mywindow","height=768,width=1024"); 
OpenWindow.document.write("<style type='text/css'>.normal{zoom:20%; -moz-transform:scale(0.2); cursor:pointer;}.notZoomed{zoom:20%; -moz-transform:scale(0.2); cursor:pointer;}.zoomed{zoom:100%; -moz-transform:scale(1); cursor:pointer;}</style>"); 
OpenWindow.document.write("<script type='text/javascript'>$(function(){$('#imageFullView').data('zoomed', false);$('#imageFullView').click(function(){$('#imageFullView').removeClass('normal');if($('#imageFullView').data('zoomed')){$('#imageFullView').removeClass('zoomed');$('#imageFullView').addClass('notZoomed');$('#imageFullView').data('zoomed', false);}else{$('#imageFullView').removeClass('notZoomed');$('#imageFullView').addClass('zoomed');$('#imageFullView').data('zoomed', true);}})"); 
OpenWindow.document.write("<img id='imageFullView' class='normal' src='" + data.previewImage + "' alt='img'/>"); 
OpenWindow.document.write("<br>"); 
OpenWindow.document.write("<center><a href='javascript:self.close()' target='_self'>Close</a></center>"); 

Но перерывы кода при попытке написать яваскрипт тегов с кодом. Если я удалю, этот код строки выполняется без нарушения.

Нельзя добавить код javascript для страницы window.open()?

Как это сделать, используя jquery?

Спасибо!

+0

сделал u OpenWindow.document.close(); – kjy112

ответ

4

Я не вижу тега закрывающего скрипта в вашем коде.

Вам нужно разбить теги сценария, чтобы он не испортил парсер страницы.

...write("<script>...</sc"+"ript>"); 

Зачем писать в новом окне? Почему бы вам просто не передать информацию, необходимую в качестве параметров запроса, и создать новую страницу для создания документа.

+0

Спасибо за ответ ... Работал для меня. Могу ли я добавить файл .js таким образом. – Balu

1

Вы забыли конечный тег для сценария.

Вы, возможно, придется разбить конечный тег сценария, например, поместив его в отдельных строках, так что она не заканчивается сценарий, который пишет сценарий: ...</scr'+'ipt>...

0

Предполагая, что вы пишете HTML, то есть два варианта.

  1. Поместите скрипт во внешнем файле
  2. Убедитесь, что любой конечный тег, не похож на конец тега.

Если вы идете с вариантом 2, а затем изменить любой экземпляр </something> к <\/something>.

Внутри строки JavaScript две конструкции идентичны.

Внутри элемента сценария HTML </something> прекратит действие элемента сценария. Поскольку браузеры, как правило, не реализуют HTML 4 правильно, обычно это только </script>, что делает это на практике, но вы все равно должны делать это для всех элементов для соответствия стандартам (и иметь возможность использовать Validator в качестве полезного инструмента).

Некоторые люди посоветуют вместо этого заменить "</script> на "<" + "/script>". Не делай это. Сложнее читать, сложнее вводить и (в земле микрооптимизации) больше байтов для загрузки и менее эффективно выполнять (конкатенация строк в JS относительно медленная).

Вы пишете XHTML, а затем получите дело с прекрасным миром CDATA and Appendix C.

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