2013-03-21 37 views
-1

加入这行代码到我的JavaScript文件时,我得到一个错误,错误添加XML的样式表的SVG对象的JavaScript内

解析错误:语法错误,意想不到的T_STRING

var data = "<?xml-stylesheet type='text/css' href='css/main.css' ?>"+ 
     "<svg xmlns='http://www.w3.org/2000/svg' width='800' height='800'>"+ 
     "<foreignObject width='100%' height='100%'>" + 
     "<div xmlns='http://www.w3.org/1999/xhtml'>"+$("#mainbody").html() 
      + "</div></foreignObject></svg>"; 

的问题disaaperas当我删除此部分:

"<?xml-stylesheet type='text/css' href='css/main.css' ?>" 

moreever我在另一个文件中的同一行,但在所有

0123没有问题

可能是什么问题?

+0

当您定义字符串或使用它时,会发生此错误吗?如果它是当你使用它,那么你没有向我们显示该代码。 – 2013-03-21 10:38:05

+0

它显示,当我定义字符串 – mfadel 2013-03-21 10:49:40

+0

如果你打破它,例如data =“<”+“?xml-st .... css'?” +“>”+ – 2013-03-21 11:35:57

回答

1

这是一个PHP错误。您需要跳过<??>序列,这当然对PHP有特殊意义。但是,即使在你修复这个问题并使PHP开心之后,你所要做的事情也不会奏效。当您尝试将某个DOM节点的“html”属性设置为您正在定义的这个data变量时,您将得到一个不同的错误,指出DOM字符串格式不正确(或者,可能会忽略<?xml-stylesheet?>伪指令) 。这是因为xml-stylesheetXML文档开头的内容,不在可分配给元素的html属性的文本DOM片段中。当显示SVG 文档时,它不会在HTML页面内的SVG片段上生效。

你想在这里完成什么? main.css文件包含仅针对SVG片段的css声明?为什么不把CSS文件包含在HTML文件的HEAD中?

另一种可能的解决方案是将SVG作为一个单独的文件进行外部化,并将其包含在使用IMG元素或其他东西 - 在这种情况下<?xml-stylesheet?>伪指令将工作得很好。但是,这不会让你做什么你似乎试图做的事情$("#mainbody") - 这是...什么?以某种方式将HTML包装到SVG中?为什么?