Справка по источнику страниц JavaScript - PullRequest
0 голосов
/ 09 июля 2010

В настоящее время я пишу систему для пользователя, которая при заполнении формы создает шаблон для электронного письма в формате HTML, который можно будет использовать с их системой CRM, проблема в том, что ваш пользователь немного послушен и Живые из них не могут понять, как просмотреть исходный код страницы, чтобы они могли скопировать и вставить код шаблона в свою CRM. Я хочу иметь возможность иметь ссылку / кнопку, которую пользователь может щелкнуть, чтобы показать источник код в окне, я в настоящее время являюсь разработчиком javascript, поэтому любые советы, примеры подсказок было бы здорово.

Ответы [ 2 ]

1 голос
/ 09 июля 2010

Что ж, вы, вероятно, хотите сделать что-то вроде этого: возьмите «innerHTML» элемента, содержащего ваш шаблон HTML (или что-то еще). Затем откройте новое окно и поместите в него HTML-код, окруженный блоком <pre>. Вы также захотите заменить все важные символы разметки соответствующими HTML-сущностями и, вероятно, заменить символы новой строки <br> элементами.

Вероятно, это будет близко к этому (но это не проверено):

<code>var html = document.getElementById('whatever').innerHTML
  .replace(/&/g, '&amp;')
  .replace(/</g, '&lt;')
  .replace(/>/g, '&gt;')
  .replace(/\r?\n/g, '<br>');

var w = window.open('', 'SourceWindow', 'height=500,width=600');
var d = w.document.open();
d.write('<html><body><pre>' + html + '
'); d.close ();

изменить & mdash; если вы хотите удалить блоки сценариев, вы можете добавить этот вызов «replace» в серию выше:

.replace(/<\s*script[^>]*>.*?<\/\s*script[^>]*>/g, '')

Это немного шатко, потому что в общем случае попытка распознать HTML с помощью регулярного выражения на самом деле невозможна. Однако, поскольку теги сценария на самом деле не содержат разметки и обязательно заканчиваются следующим закрывающим тегом сценария, он менее одиозен, чем общий случай.

0 голосов
/ 09 июля 2010

Я думаю, что здесь лучше не использовать трюк с Javascript, а скопировать HTML-шаблон в видимый раздел и заменить "<" на "<", ">" на ">" (избегая других битов)по мере необходимости).

Я бы сказал, что из-за плохого удобства использования пользователь вынужден самостоятельно просматривать исходный код страницы, и для таких замен не сложно использовать регулярные выражения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...