WebページまたはRSSフィードから任意の複数の文字列(※)を抽出する(または色を変えて表示する、フォントを変える、太字にする)方法はありませんか?
JavascriptによるBookmarkletで実現可能だと思ったのですが、アドバイスお待ちしています。
(※「WebページまたはRSSフィードから任意の複数の文字列」という表現が分かりにくいですが、例えばこの質問が載っているページを例にとると「カテゴリー」「ブックマーク」「回答」と言った任意の文字列を一度に抽出[または色を変えて表示する、フォントを変える、太字にする]方法を探しています。)
No.3ベストアンサー
- 回答日時:
<html>
<body>
<a href="javascript:(function(){var W=['抽出','ページ','フィード'],CSS='background-color:#f0f;color:#fff;',D=document;if(D.body.createTextRange){var C=D.body.createTextRange(),BM=C.getBookmark()};for(var i=0;i<W.length;i++){if(W[i]==''){return}function MS(M){var di=D.createElement('div'),sp=D.createElement('span');if(M){ di.appendChild(sp);}sp.style.cssText = CSS;if(M){sp.innerHTML=C.text;return di}else{return sp;}}if(C){C.moveToBookmark(BM);while(C.findText(W[i],1,4)){C.pasteHTML(MS(1).innerHTML);}}else{var Z=getSelection;Z().collapse(D.body,0);if(window.find){while(find(W[i],true,false)){ if(Z()!=''){ Z().getRangeAt(0).surroundContents(MS());}}}}}})();">検索反転</a> (大文字/小文字区別版)
<br>
<a href="javascript:(function(){var W=['ie','fiREFOX','sA'],CSS='background-color:#f0f;color:#fff;',D=document;if(D.body.createTextRange){var C=D.body.createTextRange(),BM=C.getBookmark()};for(var i=0;i<W.length;i++){if(W[i]==''){return}function MS(M){var di=D.createElement('div'),sp=D.createElement('span');if(M){ di.appendChild(sp);}sp.style.cssText = CSS;if(M){sp.innerHTML=C.text;return di}else{return sp;}}if(C){C.moveToBookmark(BM);while(C.findText(W[i],1,0)){C.pasteHTML(MS(1).innerHTML);}}else{var Z=getSelection;Z().collapse(D.body,0);if(window.find){while(find(W[i],false,false)){ if(Z()!=''){ Z().getRangeAt(0).surroundContents(MS());}}}}}})();">検索反転</a> (大文字/小文字区別なし版)
<br>
<p>
>このページで具体的に言うなら「抽出」と「フィード」と「ページ」の3つの文字を一度に背景色を変更。
>このページで具体的に言うなら「抽出」と「フィード」と「ページ」の3つの文字を一度に背景色を変更。
>このページで具体的に言うなら「抽出」と「フィード」と「ページ」の3つの文字を一度に背景色を変更。
>このページで具体的に言うなら「抽出」と「フィード」と「ページ」の3つの文字を一度に背景色を変更。
</p>
文字列指定箇所、色指定箇所を先頭に持って来てありますので
エディタで開いて該当する場所を変更してください。ぱっと見ればわかると思います。
文字列はサンプル通り『必ずシングルクォーテーション』で囲む事。
1ワードの時は
W=['抽出','ページ','フィード']の部分を
W=['抽出','ページ',''] または W=['抽出','ページ'] の様にする
増やす場合は
W=['抽出','ページ','フィード','IE','Firefox'] の様に。
IE または Firefoxのみ対応と言う事で。
ページのレイアウトが崩れるケースもあるみたいです。
RSSフィードの操作についてはまた別の方法が必要なのかも?
普段扱ってないので、とりあえずRSSについてはパスです^^;
もしまだ何変更が必要な場合は ie専用でも良いか?IE,Firefox両対応か?を補足しておいてください。
ブックマークは文字数制限があるので、固定ブラウザ専用にした方がサッパリと短くできますから。
</body>
</html>
arexisさん、大変ありがとうございました!
おかげさまで、ネット巡回の効率が大幅にアップしそうです。
文字列指定箇所、色指定箇所も入れ替えても、タブブラウザSleipnirとSleipnirポータブル(ともにIE7エンジン)で正常に動作しました。
No.2
- 回答日時:
<html>
<body>
<a href="javascript:(function(){ var arg = prompt('文字を入力',''), cont; if(!arg){ return; } if(document.body.createTextRange){ cont = document.body.createTextRange(); var BM= cont.getBookmark() }; function MakeSpan(mode){ var div = document.createElement('div'), span = document.createElement('span'); div.appendChild(span); span.style.cssText = 'background-color:#ff00ff; color:white;'; if(mode){ span.innerHTML = arg; return div}else{ return span; } } if(cont){ cont.moveToBookmark(BM); while(cont.findText(arg,1,4)){ cont.pasteHTML(MakeSpan(true).innerHTML); }}else{ if(window.find){ while(window.find(arg, true, false) ){ if(window.getSelection() == ''){ continue; } window.getSelection().getRangeAt(0).surroundContents(MakeSpan()); }}}})();">検索反転</a>
これをHTMLファイルとして表示させて、このリンク『検索反転』をブックマークしてください。
ざっと作った簡単なbookmarkletなので、、
RSSフィードの方の対応はしていません。
IE7とFirefox2のみ動作確認しています。
Netscapeは動きません。
Safariは調整すれば動きますが調整していません。
反転表示の色については現在は背景ピンク、文字が白です。
このスクリプト内に
background-color:#ff00ff; color:white;
と言う場所があります。
色を変える時はこのスクリプトの色部分を変更してからブックマークしなおしてください。
この説明文は、色書換えの時のサンプル用にHTML内に入れてあります。
「検索反転」をクリックすればこのページ内で確認できます。
</body>
</html>
アンカー部分は1行です。
コピーして折り返される場合は1行に戻してください。
わざわざjavascriptの製作までしてくださって本当にありがとうございます!
ずうずうしいお願いですが、できたらこれを複数の文字列に対しても実装する方法はないでしょうか?このページで具体的に言うなら「抽出」と「フィード」と「ページ」の3つの文字を一度に背景色を変更(同一色でかまいません。)できると大変便利で嬉しいです。
またスクリプトプロンプトによる入力ではなく、javascript内に事前に文字列を指定してjavascriptを実行するだけで、事前に指定した文字列の背景色が変化すればありがたいです。
「質問」の範疇をすでに大きく逸脱しているので、お忙しかったら無視していただいてかまいません。
回答、重ね重ねありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS リンクバナーのHTMLタグ。画像を変えたり、設置位置を変えるとバナー貼付け側はどう見える? 2 2023/02/01 12:01
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- Visual Basic(VBA) エクセルから、パワーポイントのスライドを複数作成する。 1 2022/07/08 09:40
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Excel(エクセル) エクセルで重複データから重複を削除して指定の列に抽出したい 11 2022/05/11 11:26
- Excel(エクセル) エクセルの条件付き書式で*を使いたい 4 2022/05/13 16:49
- JavaScript ブックマークレットについて 2 2022/10/09 11:48
- Excel(エクセル) エクセルにおいてセル内の文字を出来るだけ大きく表示する方法を教えてください。 4 2022/07/30 08:08
- iPad iPadのメモアプリ 文字が突然大きくなってしまった 3 2022/12/23 23:06
- その他(インターネット接続・インフラ) Webサイトのフォント・級数変更について 1 2022/10/18 18:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スマフォではボタンを表示させ...
-
翌月を取得するGASが分かりません
-
なぜmatchメソッドがエラーにな...
-
イラレでナンバリングする方法
-
GASでGoogleフォームの自動返信...
-
C#OpenCv V4にのエラーに関する...
-
var exports = exports || {}; ...
-
ローカルにあるファイルを検索...
-
vb.netでの記述方法について 以...
-
ページの先頭へスクロールして...
-
【JavaScript】数当てゲームを...
-
C# 演算 奇数と偶数 表現の仕方
-
google apps scriptの終了のさせ方
-
javascriptでiframeのURL変更は?
-
GASでundefinedエラーが出ます
-
gas 日付けの加算
-
GASのエラー「undefined からプ...
-
1日1回だけ引けるjavascriptお...
-
ASP.NETのコントロールの値をJa...
-
jsによって検索プルダウン、都...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
var exports = exports || {}; ...
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
GASでundefinedエラーが出ます
-
ジェネレーターの作り方
-
GASでGoogleフォームの自動返信...
-
HTMLで作った時報アプリが動き...
-
javascriptでテーブルに追加し...
-
html javascript リンク先アド...
-
【西暦等の変換】
-
ローカルにあるファイルを検索...
-
ASP.NETのコントロールの値をJa...
-
なぜmatchメソッドがエラーにな...
-
翌月を取得するGASが分かりません
-
gas スプレッドシートがアクテ...
-
ASP.NET MVCでObjectをjsに渡す
-
カンマで終わってるのはセミコ...
-
JavaScriptで文字列の特定文字...
-
javascriptでiframeのURL変更は?
-
APIを使って埋め込んだグーグル...
おすすめ情報