JavaScriptを使ってURLをコピーして別のURLに移動する方法

このQ&Aのポイント
  • この記事では、JavaScriptを使用してURLをコピーして別のURLに移動する方法について説明します。
  • 質問者は、特定のURLから「n1234567890」という部分をコピーして、別のURLに移動するためのJavaScriptを作成したいという問題を抱えています。
  • 質問者はOperaまたはFirefoxで動作するようなJavaScriptを求めており、回答として `clipboardData.setData('Text',location.href.replace(/^(.+):\/\/(www\.)?[^.]+([^\/]+)\/(?:.*\/)?(.+)$/,'$1://$2$4$3/$4.txt'));` というコードが提案されていますが、質問者は理解することができませんでした。
回答を見る
  • ベストアンサー

javascript

yahoo知恵袋で --------------------------------------------- このようにURLがあって、 http://www.abcdefg.com/hi/jklm/n1234567890 これの「n1234567890」の部分だけをコピーして http://www.1234567890.com/n1234567890.txt のように 別のURLを作成して、移動するようなJavaScriptを作りたいです。 Operaかfirefoxで動くようにしたいのですが、このようなJavaScriptを書くことはできますか? もし短いプログラムですぐにかけるようでしたら書いていただけるとうれしいです。 --------------------------------------------- と質問をしたところ、このような回答がきました --------------------------------------------- clipboardData.setData('Text',location.href.replace(/^(.+):\/\/(www\.)?[^.]+([^\/]+)\/(?:.*\/)?(.+)$/,'$1://$2$4$3/$4.txt')); --------------------------------------------- しかし、補足が限られているので、理解することができませんでした。 これがどういうものか教えてください。 URLは例なので、URLを変更しても使えるようになりたいです。 よろしくお願いいたします。

  • hs_w1
  • お礼率72% (34/47)

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

正規表現の問題ですね。 最後のスラッシュより後の部分以外を除去 すると目的の文字列が得られそうですね。 つまり、「文字が連続しスラッシュで終わる」 部分を空文字で置き換えます。 「文字が連続しスラッシュで終わる」は「.+/」 となります。また、ここから数字列だけを取り 出すには「先頭に続く非数字」を除去します。 「先頭に続く非数字」は「^\D+」です。 正規表現の構文は以下を参照してください。 http://msdn.microsoft.com/ja-jp/library/ae5bf541(VS.80).aspx <!--移動用フォーム--> <FORM ID="F"></FORM> <SCRIPT LANGUAGE="JavaScript"> function conv(urltext) {     //最後のスラッシュまでを除去する     var t = urltext.replace(/.*\//,"");     //上記から先頭に続く非数字を除去する     var n = t.replace(/^\D+/,"");     //移動用フォームにURLを仕込む     var f = document.getElementById("F");     f.action = "http://www." + n + ".com/" + t + ".txt";     //Eventを作る     var e = document.createEvent("Event");     //Eventを初期化する     e.initEvent("submit",false,true);     //Eventを発生させる     f.dispatchEvent(e); } </SCRIPT> 指定URLを開く方法は他にもありますが、FireFox5.0で 動作確認してあります。OPERAは未確認です。 IEではエラーになります。

hs_w1
質問者

お礼

お礼が遅くなり申し訳ないです ありがとうございました^^

関連するQ&A

  • JavaScript、動作解説のおねがい!

    こんにちは。お世話になります。 次のJavaScriptは、どういった事(何を)するものか、おしえてください。 <script type="text/javascript"> //<![CDATA[ if ((top != self) && location.href.match(/^http:\/\/[\d]+\.[\d]+\.[\d]+\.[\d]+\/translate_c/)){ if ( navigator.appName == 'Netscape' && parseInt(navigator.appVersion) == 6 ) { top.location.replace(location.href); } else { top.location = location.href; } } //]]> </script> よろしくお願いします。

  • サイト上で次のソースを見たのですが

    <html> <head><title>Now Requesting...</title> <script language="JavaScript"> <!-- w_corp="0549000101"; locate_url="http://www.p-advg.com/?bid=34731"; // alert(locate_url); // onLoad="location.replace(locate_url);" // --> </script> <style type="text/css"> <!-- a:link { color:#333333;text-decoration:none; } a:visited { color:#333333;text-decoration:none; } a:active { color:#ff0000;text-decoration:none; } a:hover { color:#ff0000;text-decoration:none; } --> </style> </head> <body bgcolor="white" text="#333333" onLoad="location.replace(locate_url);"> <br> <a href="http://www.gomi.com/?bid=34731">Now Requesting...</a> </body></html> www.gomi.comは仮名です w_corp="0549000101"; は修正後の残骸だと思いますがそうでしょうか?

  • javascriptの動作について

    こんばんは。 直接アドレス指定などしてきたものについては、 トップページへ飛ばすことをしようと思ったのですが、 以下の記述だと、IE8では動作しましたが、GoogleCrome(11.0.696.77)、firefox(3.6.0)、safari では動作しませんでした。(location.hrefがダメなんでしょうか?) 解決策・回避策などあれば教えてください。 よろしくお願いします。 <script language="JavaScript" type="text/JavaScript"> <!-- var url; url = document.referrer; if(url != 'http://xxxxxxxxx'/){ location.href('http://xxxxxxxxxxxxx'); } // --> </script>

  • JavaScript フレーム

    Javascriptをふたつ書くことはできないんですか? 2つ書いたら「い」のほうしか宣言されないんでどうしたらよろしいですか? Update.java,kensaku2.java syouhin_kensaku.html,syouhin_master.html <html> <head> <title>メニュー</title> </head> <body> <script type="text/javascript"> <!-- function jump(){ // 設定開始(表示するフレーム名とリンク先URLを設定してください) parent.hakusi.location.href = "syouhin_kensaku.html"; parent.hakusi2.location.href = "Update"; // 設定終了 } // --> </script> <a href="#" onClick="jump(); return false;">あ</a> <br> <br> <script> <!-- function jump(){ parent.hakusi.location.href = "syouhin_master.html"; parent.hakusi2.location.href = "kensaku2"; //設定終了 } // --> </script> <br> <a href="#" onClick="jump(); return false;">い</a> <br> <br> </body> </html>

  • location.hrefが動かない・・・

    F5が押された場合に指定したURLに飛ばすようにしたいのですがなかなかうまくいきません・・・ ブラウザはFirefox 2.0.0.7を使用しています コードは以下の様にしております <script type="text/javascript"><!-- function key(keyCode){ if (keyCode == 116){ location.href = "http://www.google.co.jp/"; } } --></script> <body onKeyDown="key(event.keyCode)"> </body> 指定URLはGoogleにしています これ状態でF5を押してもなにも起こらず普通に更新されるだけです location.href = "http://www.google.co.jp/";の部分をdocument.write('TEST');などのようにdocumet.writeに書き換えると普通に指定した文字列が表示させます location.hrefと同様にwindow.location.hrefやlocation.replaceでも指定URLに飛ばされません documet.writeは動くのでF5が押されたかどうか判断するコードは間違っていないと思うのですが・・・ ちなみにIEでもダメでした 誰か原因がわかる方が居られましたら教えてください よろしくお願いします

  • javascriptでGETパラメータを扱う

    javascript初心者です。 javascriptでURLをGETパラメータとして取得して、その値を HTMLのaタグのリンク先に指定しようとしています。 こんな感じに出来たらいいと思っています。 ↓ <a href="[GETパラメータで取得したURL]">[GETパラメータで取得したURL]</a> GETパラメータの取得は自力で調べて下記のように記述すればできることがわかりましたが、 aタグのリンク先に指定する記述方法が分かりません。 助けてください。 よろしくお願いします。 <script type="text/javascript"> function getUrlVars() { var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for(var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; } </script>

  • JavaScriptでのクリックやフォームについて

    いままでVBSで該当URLへとび、フォーム入力の自動化を行なっていたのですが、 JavaScriptでも似たようなことをしようと思い、 htmlファイルのscriptタグにて、location.hrefで該当URLへとび、 getElementByIdでID取得をしようと思ったのですが、なにも起こらずその後、解決策が見つからず困っています。 location.hrefでリンク先にとんだからといって、 そのページのソースコードを取得しているわけではないのでしょうか? そもそもVBSと同様に該当URLにとんで、フォームのIDなどを取得、フォーム入力という流れを Javascriptでも可能なのでしょうか? どうぞご回答のほどよろしくお願いいたします。

  • javascriptの実体参照?

    現在googlechromeの拡張の開発の為に、javascriptにチャレンジしています。 やりたいことは不特定のサイトにアクセスした時、ソースを取得して、正規表現でマッチするURLがあればそのURLにジャンプするといった事です。 その際、URLの中に「&」があれば「&amp」に変換されてしまいます。 下記の記述で「document.write(xURL);」に書き換えると「&」のままで思い通りに出力できましたが、「location.href = xURL;」の場合は「&amp」に変換されてしまいます。 ジャンプするサイトが対応していないか、chromeが対応していないか、そもそもjavascriptの記述が間違っているか、判断がつきません。 ご教授頂ければ幸いです。宜しくお願い致します。 //////////////////// ソースから検索してジャンプしたいURLは「http://abc.com/(ワイルドカード)123」のようなものです。 xSource = document.getElementsByTagName("html")[0].innerHTML; if ((xURL = xSource.match(/http:\/\/abc\.com\/.*?123/)) != null) { location.href = xURL; }; ////////////////////

  • JavaScriptで決まった「時刻」にページを移動するには?

    JavaScriptで決まった「時刻」にページを移動するには? お世話になります。 JavaScriptを使い、こちらが決めた時刻に自動的に 指定したページに切り替わりようにすどのようにすれば良いのでしょうか? 例:20時45分に現在のページから「page02.html」に移動する。 <script language="JavaScript" type="text/javascript"> <!-- var time = 45; function setTimer(){ setTimeout("location.replace( './page02.html')", time * 60 * 1000); } //--> </script> 自分なりに「setTimeout」「location.replace」を使って作ってみました。 移動する動作はリアルタイムで見られて良いのですが、 この場合、ページを開いてから45分後に移動してしまう為 指定した時刻での移動とはなりません。 「setTimeout」を使うのが間違っているような気がしますが、 他にどのようなメソッドを使ってよいのか分からない状態です。 必要に迫られJavaScriptを勉強し始めたばかりで分からないことだらけで 途方に暮れております。 ご指導よろしくお願いします。

  • 「このブログをリンクに追加する」を別窓で開きたい

    投稿失礼します。 現在FC2でブログを運営しているのですが、 下記のリンクを新しいウィンドウで開かせることは可能でしょうか? <a href="javascript:window.location.replace('http://blog.fc2.com/?linkurl='+window.location.href);">このブログをリンクに追加する</a></li> よろしくお願いします。

専門家に質問してみよう