简体   繁体   English

如何在javascript变量中包含javascript标签?

[英]How to include javascript tags in a javascript variable?

Building on the answer to this question (see JSFiddle ), I have: 基于此问题答案 (请参阅JSFiddle ),我有:

var baseContent = '<!DOCTYPE html><html lang=\"en\"><head><title>..etc...</head><body>'+myContent+'</body></html>';

...and it works (produces the content of an iframe, in this case). ...并且可以正常工作(在这种情况下,产生iframe的内容)。 However, if I use the same procedure to add some javascript in the <head> (or <body> ), eg: 但是,如果我使用相同的过程在<head> (或<body> )中添加一些javascript,例如:

<script type=\"text/javascript\">swfobject.embedSWF(\"flash.swf\", \"my_flash\");</script> 

...I get error unterminated string literal at var baseContent = ' . ...我在var baseContent = '处得到错误unterminated string literal var baseContent = ' unterminated string literal How do I include javascript in var baseContent ? 如何在var baseContent包含javascript?

update 更新

@TamarG I tried the suggestions below but no luck - see: http://www.casedasole.it/fancybox/js/index.html . @TamarG我尝试了以下建议,但没有运气-请参阅: http : //www.casedasole.it/fancybox/js/index.html I need to include in var baseContent both a link to an external javascript file (swobject.js) and its related javascript in the <head> . 我需要在var baseContent包括指向外部javascript文件(swobject.js)的链接以及<head>与之相关的javascript。 But adding <script type=\\"text/javascript\\" src=\\"swfobject.js\\"></script> to var baseContent stops the iframe loading, with the same error: unterminated string literal at var baseContent = ' . 但是,将<script type=\\"text/javascript\\" src=\\"swfobject.js\\"></script>var baseContent停止iframe加载,但会出现相同的错误: var baseContent = 'unterminated string literal var baseContent = ' unterminated string literal

Explanation (reply to below) 说明 (回复下面)

The JSFiddle referred to in my question shows how fancybox can be used to open an iframe on page-load. 我的问题中提到的JSFiddle显示了如何使用fancybox在页面加载时打开iframe。 The content of the iframe is encoded in the "launch" page (unusual, because usually fancybox iframes load a separate HTML file, image, video etc). iframe的内容在“启动”页面中编码(不常见,因为通常是fancybox iframe会加载单独的HTML文件,图像,视频等)。

In the JSFiddle example, var baseContent contains a sample of HTML that can be used to create the iframe content ( <!DOCTYPE> , <head> , <style> <body> , etc). 在JSFiddle示例中, var baseContent包含一个HTML示例,可用于创建iframe内容( <!DOCTYPE><head><style> <body>等)。 Encoding the basic HTML in var baseContent looks easy - eg <style type="text/css"> becomes <style type=\\"text/css\\"> . var baseContent编码基本HTML看起来很容易-例如<style type="text/css">变为<style type=\\"text/css\\">

But I also need the iframe <head> to link to an external swfobject.js file and to include the standard 2-line swfobject flash detection script, swfobject.embedSWF("flash.swf", "my_flash" , etc. 但我还需要iframe <head>链接到外部swfobject.js文件,并包括标准的2行swfobject Flash检测脚本, swfobject.embedSWF("flash.swf", "my_flash"等)。

But when I use the same approach that works with the other HTML tags to encode the javascript tags, ie encode <script type="text/javascript" src="swfobject.js"></script> as <script type=\\"text/javascript\\" src=\\"swfobject.js\\"></script> , there is an error and the iframe won't open on page-load - see this page . 但是,当我使用与其他HTML标签一起使用的相同方法对javascript标签进行编码时,即将<script type="text/javascript" src="swfobject.js"></script>编码为<script type=\\"text/javascript\\" src=\\"swfobject.js\\"></script> ,出现错误,并且在加载页面时无法打开<script type=\\"text/javascript\\" src=\\"swfobject.js\\"></script> 请参见此页面

So my question is how to format links to external js files in var baseContent (and then, once that's working, how to format js in the var baseContent itself). 所以我的问题是如何在var baseContent格式化链接到外部js文件(然后,一旦工作,如何在var baseContent本身中格式化js)。

<script type=\\"text/javascript\\"> is to enter JS in html. <script type=\\"text/javascript\\">用于以html输入JS。 if the main code is JS - just remove <script type=\\"text/javascript\\"></script> and write only swfobject.embedSWF("flash.swf", "my_flash"); 如果主要代码是JS-只需删除<script type=\\"text/javascript\\"></script>并仅写入swfobject.embedSWF("flash.swf", "my_flash");

'<!DOCTYPE html><html lang=\"en\"><head><title>'+
swfobject.embedSWF("flash.swf", "my_flash")
+'</head><body>'+myContent+'</body></html>';

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM