将此行代码添加到我的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>";
当我删除这部分时,问题会消失:
"<?xml-stylesheet type='text/css' href='css/main.css' ?>"
此外,我在另一个文件中有相同的行,但没有任何问题
可能是什么问题?
答案 0 :(得分:1)
这是一个PHP错误。您需要转义<?
或?>
序列,这当然对PHP具有特殊意义。
然而,即使你修复了这个并让PHP开心,你想要做的事也行不通。当您尝试将某个DOM节点的“html”属性设置为您定义的此data
变量时,您会收到一个不同的错误,指出DOM字符串格式错误(或者可能是{{1}伪指令将被忽略)。这是因为<?xml-stylesheet?>
是出现在 XML文档的开头,而不是在可以分配给元素的xml-stylesheet
属性的文本DOM片段中。它会在显示SVG 文档时生效,而不会在HTML页面中的SVG片段上生效。
你想在这里完成什么? html
文件包含特别针对SVG片段的css声明?为什么不将CSS文件包含在HTML文件的HEAD中?
另一个可能的解决方案是将SVG外部化为一个单独的文件,并使用IMG元素或其他东西包括 - 在这种情况下main.css
伪指令将正常工作。但这不会让你做你似乎试图用<?xml-stylesheet?>
做的事 - 这是什么?以某种方式将HTML包装在SVG中?为什么呢?