-1

このコード行を 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' ?>"

さらに、別のファイルに同じ行がありますが、まったく問題ありません

何が問題なのですか?

4

1 に答える 1

1

これは PHP エラーです。<?またはシーケンスをエスケープする必要がありますが?>、これはもちろん PHP にとって特別な意味を持ちます。

ただし、それを修正してPHPを満足させた後でも、あなたがしようとしていることはうまくいきません. ある DOM ノードの "html" プロパティを、data定義しているこの変数に設定しようとすると、DOM 文字列の形式が正しくないという別のエラーが発生します (または、<?xml-stylesheet?>疑似命令が無視される可能性があります)。これは、要素のプロパティに割り当てることができる種類のテキスト DOM フラグメント内ではなく、 XML ドキュメントxml-stylesheetの先頭に来るものだからです。HTML ページ内の SVG フラグメントではなく、SVGドキュメントが表示されたときに有効になります。html

ここで何を達成しようとしていますか? main.cssファイルには、SVG のそのフラグメントだけに固有の css 宣言が含まれていますか? CSS ファイルを HTML ファイルの HEAD に含めないのはなぜですか?

別の可能な解決策は、SVG を別のファイルとして外部化し、IMG 要素などを使用してそれを含めることです。その場合、<?xml-stylesheet?>疑似命令は問題なく機能します。しかし、それでは、あなたがそのことでやろうとしているように見えることをすることができなくなります$("#mainbody")--それは...何ですか? どうにかして HTML を SVG でラップするには? なんで?

于 2013-03-21T16:30:50.823 に答える