2014年2月25日火曜日

インラインsvgを別ウインドウに開くブックマークレット

表題の通りです.
インラインsvgはそのままでは保存しにくいので,それをサポートするツールを作ってみました.
web開発のお供に使ってみてください.結構面白いよ.

※なお,他人のサイトのsvgを勝手にコピーするのは著作権に触れることも考えられるから,お気を付け下さい.

なんだ,似たようなツールってば既にあるのね…
http://nytimes.github.io/svg-crowbar/

 
getSVG:このリンクをブックマークに保存してね.

使い方

  • 上記リンクをブックマークに保存します.
  • インラインsvgを使っているwebページに移動し,上で保存したブックマークを実行します.
  • すると,「インラインsvgをクリックしてね」というダイアログが表示されるので,そのとおりにします.
  • インラインsvgがクリックした範囲に見つかると別ウインドウ(タブ)にスタンドアロンのsvgファイルとして表示します.(→ここからwebページの保存を行うことでsvgの保存もできます.)

ブックマークレットjsファイルの本体はこちら

どんな時に使うの?


  • 動的にsvgを生成している場合に,意味不明なバグが発生してsvgの中身を確認したいときとか,手書きでインラインsvgを記述している場合に,意味不明なバグが発生して以下略)
    つまりsvgのスナップショットですな. d3.jsとかsnap.svgとかと組み合わせると良いかも…!
  • え,こんなところにインラインsvgが!ってのを探したいとき
  • xml文書をxsltを噛ませてsvgにしたけれど,その出力結果を保存したいとき
    (多分動く…筈!)
  • 昔のsvgを開いたらxmlのツリーが表示されてしまったとき
    (昔のsvgファイルの中には今のwebブラウザで開けないものもあります…)
    →試してみたら,firefox限定かも.

制限


  • 本ブックマークレットを使ってsvgを外部に取り出した場合,フィルターやグラデーション等のデザイン情報が抜け落ちる事があります.これはhtml文書内部でインラインsvgの内容を外から設定していることによります.
  • iframeとかobject要素とかでsvgを表示している場合は上手く動作しません.この場合は右クリックで「フレーム内部を別ウィンドウで表示」とかすればいいはず. 
  • httpsで表示しているサイトではブックマークレットが正しく動作しません.
    (webブラウザ側でスクリプトの実行をブロックする場合があります.)


0 件のコメント:

コメントを投稿