1

HTML ページに動的に生成された SVG が埋め込まれています。表示されていますが、望ましくない水平スクロール バーと垂直スクロール バーがあります。v. 迷惑です! Chrome ブラウザーで要素を調べると、<head> タグと <body> タグが含まれていることがわかります。SVG としては正常ではありません! ''data'' 属性を変更して従来の静的 SVG を含めると、ブラウザに head タグまたは body タグが追加されません。

私はApacheサーバー上のPHPページからSVG XMLを提供しており、次のようにマークアップにオブジェクトとして埋め込んでいます:

<object id="map" type="image/svg+xml" data="mapphp.svg"></object>

ブラウザは、これが従来の SVG ファイルではないことを明らかに検出しており、それを Content-Type:text/html として扱い、head タグと body タグを追加して、不適切に記述されたマークアップと見なされるものを標準化していると推測できます。

PHPファイルを.htaccessでマスキングし、ヘッダーをmod_headers.cで上書きしようとさえしました

<IfModule mod_rewrite.c>
  RewriteCond %{REQUEST_URI} mapphp.svg [NC]
  RewriteRule ^(.*)$ map.php?r=$1 [L,QSA]
</IfModule>

<ifModule mod_headers.c>
  <filesMatch "mapphp\.svg$">
    Header set ETag "813c0-3a0-4e7c49319ad82"
    Header unset Content-Type
    Header unset X-Powered-By
    Header unset Server
  </filesMatch>
</ifModule>

それでも、私の SVG を HTML ドキュメントとして扱い、 <head> および <body> タグを付けているようです。

PS 投稿したら寝ますので、明日まで返事がなくても気にしないでください。どんな援助でも大歓迎です。

4

1 に答える 1

3

内部には、出力が行われる前map.phpに次のヘッダーが含まれています。header("Content-type: image/svg+xml");

于 2013-10-02T21:37:52.667 に答える