2013-03-21 52 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中?爲什麼?