人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Dreamweaver 8 を使っています。

サイト内のファイルにある、リンクのaタグのなかで、内部リンクのものだけをすべて検索し、置換してターゲット属性を与えたいのですが、方法はありますでしょうか。

ちなみに、検索・置換機能を使って

・検索: 特定のタグ: a
・含んでいない: 特定のタグあるいはテキスト: http://

で検索をかけてみましたが、内部リンクも外部リンクも全て拾ってしまうのでダメでした。

他のソフトを使っても結構です。方法があればお教えください。

●質問者: Bie
●カテゴリ:インターネット ウェブ制作
✍キーワード:Dreamweaver http:// サイト ソフト タグ
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● NYO
●0ポイント

正規表現を駆使する・・・というのは難易度高めかもしれませんので、別の方法を提案します。


一時的に別のタグに置換&分離してから再置換』法(長っ!)


外部リンクは全てhttp?、内部リンクは全て相対パスとし、

外部リンクに設定したいターゲットを"_hoge"とします。


1.現状

<a href="inner.html">内部リンク</a>
<a href="http://hatena.jp">外部リンク</a>

2.hoge置換

ソースコードの置換で、httpを含むaタグを一時的にaとhogeタグに分離します。

置換前:a href="http

置換後:a href=""><hoge href="http

<a href="inner.html">内部リンク</a>
<a href=""><hoge href="http://hatena.jp">外部リンク</a>

これで外部リンクだけがhogeタグに置換されました。


3.hogeタグにtarget設定

同じく置換によって、特定のタグ内で属性指定を行います。

つまりhogeタグ内でtarget="_hoge"を設定してしまうわけです。w

特定のタグ:hoge

属性を設定:target="_hoge"

<a href="inner.html">内部リンク</a>
<a href=""><hoge href="http://hatena.jp" target="_hoge">外部リンク</a>

これで指定したいtargetが設定できました。


4.hogeとaタグを置換して結合

そもそも必要ないhogeタグを削除し、aタグに結合してしまいます。

置換前:href=""><hoge href

置換後:href

<a href="inner.html">内部リンク</a>
<a href="http://hatena.jp" target="_hoge">外部リンク</a>

これで完了です。

すでにtargetを設定してある場合やaタグ内での記述方法によって微調整すれば、一括して置換可能です。

◎質問者からの返答

コメントもいただきましたが、これは外部リンクを変更する方法ですよね。知りたいのは内部リンクの方です。

でも、このテクニックを使えば、いったん全てのリンクにターゲット属性を与え、その後で外部リンクだけターゲット属性を削除すれば、内部リンクの属性だけが残るかもしれませんね。

ありがとうございました。


2 ● wizemperor
●35ポイント

DWの置換機能でできます。

「特定のタグ」はかえって面倒なのと、ちょっと試したところうまくいかない(?)ようなので、正規表現を使った方法を書きます。

(「ターゲット属性を与えたい」ということなので、taget属性はまだ付いてないものとして書きます。)

まず、検索を「ソースコード」にして、「正規表現を使用」にチェックを付けてください。

次に入力欄に次のように入力します。


検索:

<a(\s+?.+?)?\shref="((?:http:\/\/abc\.ne\.jp|\/?\.+?).*?)"(\s?.+?)?>

置換:

<a$1 href="$2" target="_blank"$3>


「hhttp:\/\/abc\.ne\.jp」はご自分のサイトに合わせて変更してください。

その場合、「/」は「\/」、「.」は「\.」としてください。(「\」はWindowsでは円マーク)


置換欄の$1?$3は


$1: href属性の前にある属性等

$2: href属性の値(URI)

$3: href属性の後ろにある属性等


に置き換わりますので、

置換欄に$1?$3を当てはめて、後は変換したいように入力してください。

◎質問者からの返答

ありがとうございました。

この方法でうまくいきそうです。

正規表現については、DWのヘルプを読んでも役に立ちそうもなかったのであきらめておりましたが、もっと勉強しようと思います。


3 ● minkpa
●0ポイント

http://www.adobe.com/jp/support/training/certified_professional_... ターゲット属性'

◎質問者からの返答

開いてみましたが見当たらないようです・・・


4 ● NYO
●55ポイント ベストアンサー

もっと簡単にできそうです

1.現状

<a href="inner.html">内部リンク</a>
<a href="http://hatena.jp">外部リンク</a>

2.hogeタグに置換

httpで始まる外部リンクのaタグを一時的にhogeタグに置換

置換前:a href="http

置換後:hoge href="http

(hogeだけでもたぶん大丈夫ですが、わかりやすくするためhttpまで入れてあります)

<a href="inner.html">内部リンク</a>
<hoge href="http://hatena.jp">外部リンク</a>

これで外部リンクがhogeに変わりました。


3.aタグにターゲット設定

上記と同様に特定のタグ(=内部リンクのaタグ)に属性を指定します。

特定のタグ:a

属性の指定:target="_hoge"

<a href="inner.html" target="_hoge">内部リンク</a>
<hoge href="http://hatena.jp">外部リンク</a>

4.hogeタグの再置換

不必要なhogeタグをaタグに戻します。

置換前:hoge

置換後:a

<a href="inner.html" target="_hoge">内部リンク</a>
<a href="http://hatena.jp">外部リンク</a>

これで完了です。

なお、意図しない部分でhogeという文字列が含まれているかもしれませんので、ユニークな文字列を適宜使用すれば問題ないと思います。

正規表現は非常に強力で、wizemperorさんの方法はGoodですが、

慣れていないと、意図した部分が選択できない、意図しない部分を選択してしまうことがありえます。

この『hoge置換法』なら置換がイメージしやすく、他にも融通が利きますので裏技的に覚えておくとよいかと思います。

(要は"置換"の使いようですね♪)

◎質問者からの返答

素晴らしいアイデアです!

これでなれなくて不安な正規表現を使わなくてもいけそうです。

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ