Я создаю небольшое приложение с несколькими модальными диалоговыми окнами. Для окон требуется крошечный бит HTML. Я жестко закодировал окно HTML в библиотеке javascript, но я не в восторге от этого решения. Есть ли более элегантный способ сделать это? Похоже, что JavaScript не имеет многострочных строк/синтаксиса heredoc.
var html = "<div id='email_window'><h2>Email Share</h2><div>";
html = html + "<form action='javascript:emailDone();' method='post'>";
html = html + "<div><label for='to'>To</label><input id='to' type='text'></div>";
html = html + "<div><label for='from'>From</label><input id='from' type='text' value='" + email + "'></div>";
html = html + "<div><label for='subject'>Subject</label><input id='subject' type='text' disabled='disabled' value='" + subject + "'></div>";
html = html + "<div><label for='body'>Body</label><input id='body' type='text' disabled='disabled' value='" + body + "'></div>";
html = html + "<div><input type='submit' value='Send'><input type='button' value='Cancel' onClick='javascript:$.fancybox.close();'></div>";
html = html + "</form></div>";
$("#data").html(html);
Добавлен пояснение исходного сообщения -
Любое решение не может использовать Ajax/XHR, чтобы вытащить файл шаблона, потому что библиотека javascript будет находиться в другом домене, который html файл, который он включил в Это немного похоже на ShareThis. Библиотека будет включена на несколько разных сайтов и привязана к событию onClick любого якорного тега внутри div с атрибутом sharetool = "true".
Например:
http://www.bar.com - index.html
<html>
...
<script type="text/javascript" src="http://www.foo.com/sharetool.js"></script>
...
<body>
<div sharetool="true">
</div>
...
</html>