【问题标题】:unterminated string literal when adding image to span将图像添加到跨度时未终止的字符串文字
【发布时间】:2012-01-23 14:01:38
【问题描述】:

我想在跨度内添加图像 这是我尝试过的(在表单中我添加了这个脚本):

<script language="JavaScript">
       function addSelected(){
             var content=" <img src='/resources/images/image.bmp'/> ";
             var span = document.getElementById("members"); 
             span.innerHTML=content;
              }
          </script>

但它总是给我错误:

未终止的字符串文字

在这一行:

var content=" <img src='/resources/images/image.bmp'/> ";

因为它被浏览器翻译成类似的东西(由萤火虫发现):

var content=" <img src="/resources/images/CONTACTS.bmp" /> &#34;;

这是在 Firefox 8 上测试的。

【问题讨论】:

  • “它被翻译了”——由什么翻译的?
  • 请发布正在修改的 HTML 标记。那里可能有一些不正确的地方。

标签: javascript html jsf


【解决方案1】:

只需在content 字符串中的任何" 之前添加\

var content=" <img src=\"/resources/images/image.bmp\"/> ";

【讨论】:

  • 当我尝试得到错误时:Open quote is expected for attribute "{1}" associated with an element type "src".
  • 你确定你做的和他一样吗?请注意,他没有转义第一个和最后一个双引号。
  • 我看不出问题中的代码或此答案中的代码有什么问题;我认为这里一定有其他事情发生......
  • 这是一个简单的 js 字符串,转义引号是非常基本的东西。这里我们得到一个双引号字符串(在" 之间),我们用`\` 转义其中的每个" .
  • 我不知道为什么它不起作用,我将 JS 函数放在一个表单中(我正在制作 JSF 应用程序),也许这会有所帮助。
【解决方案2】:

那么这个呢:

var content = document.createElement("img");
content.src = "/resources/images/image.bmp";
span.appendChild(content);

这是使用 DOM 本身向 DOM 添加元素的标准方式。你可以避免这些问题。

【讨论】:

  • 当我尝试这样做时,没有任何内容添加到 span !但我在控制台中没有错误!
  • 我的错,我必须在 url 之前添加应用程序上下文,它工作得很好。
  • 在调用span之前确定对象存在吗?他发布的内容应该有效。
  • @sameh frahat 很好,最好这样做,因为您使用的是通用标准,这可能意味着您拥有更多“跨浏览器代码”;)
猜你喜欢
  • 2019-05-22
  • 1970-01-01
  • 2013-10-16
  • 2014-06-09
  • 2014-06-14
  • 1970-01-01
  • 2011-04-01
相关资源
最近更新 更多