• 締切済み
  • 困ってます

これをOperaでも動くようにしたい

http://programming-magic.com/?id=158 こちらの function(){ var l = document.getElementsByTagName("A"); for(var i=0; i<l.length; i++){ var a = l[i]; if(a.href.indexOf('javascript:',0)){ var e = /*@cc_on!@*/0; if(e){//IE専用 a.href = 'javascript: (function(){location.href = "'+a.href+'";})();'; } else{//Firefox、Opera、Safari a.href = 'data:text/html;charset=utf-8,'+encodeURIComponent('<script type="text/javascript"><!--\ndocument.write(\'<meta http-equiv="refresh" content="0;url='+a.href+'">\');// --><'+'/script>'); } } } } を、Operaでも動くようにできませんでしょうか

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数26
  • ありがとう数0

みんなの回答

  • 回答No.1
  • yambejp
  • ベストアンサー率51% (3827/7415)

//Firefox、Opera、Safari とありますが、動かないのですか?

共感・感謝の気持ちを伝えよう!

質問者からの補足

Opera9.64から消せなくなったみたいで;

関連するQ&A

  • 特定のclassを表示、非表示にする

    javascriptで特定のclassを表示、非表示にする方法を検討中なのですが、 a,b,cと三つのボタンが有り、abcというclassがあります。 aをクリックするとb,cが非表示になり、aが表示される bをクリックするとa,cが非表示になり、bが表示される cをクリックするとa,bが非表示になり、cが表示される と言う動作をさせたいのですが、上手くいきません。 どなたかご教授ください。 お願いいたします。 <script type="text/javascript"> <!-- function change(site){  if(!document.getElementsByTagName){return;}  var e = new Array('a','b','c');  var objs = document.getElementsByTagName('*');  for(i=0;i<e.length;i++){   if(e[i] != site){    for(y=0;y<objs.length;y++){     if(objs[y].className == e[i]){      objs[y].style.display = 'none';     }else{      objs[y].style.display = '';     }    }   }  } } // --> </script> <table cellspacing="10"> <tr> <th>テスト</th> <td> <input type="text" name="" id="" class="a" value="" /> <input type="text" name="" id="" class="b" value="" /> </td> </tr> <tr> <th>test</th> <td> <input type="text" name="" id="" class="c" value="" /> </td> </tr> </table> <a href="javascript:change('a')">a</a> <a href="javascript:change('b')">b</a> <a href="javascript:change('c')">c</a>

  • 外部javascriptファイルをjavascriptから動的に呼び出したい

    呼び出し元のURLによって動作を変えたいJAVASCRIPTがあります。 普段外部のJAVASCRIPTを呼び出すときはよくこうするのですが <script type="text/javascript" src="js.php?key=url"></script> これでは「key=url」が固定になってしまいます。そこで下記のように <script> var commentname=document.URL; var str=encodeURIComponent(commentname); document.write('<script type="text/javascript" src="read.php?key=',str,'"><\/script>'); </script> document.writeを使って無理やり外部Javascriptファイルの呼び出しスクリプトを書いているのですが、この書き方はどうもエレガントさにかけるというか、いまいち気に入りません。 もっとほかに良い方法がある気がするのですが、調べてもわかりませんでした。おわかりになる方がいらっしゃったらご教示頂けないでしょうか。

  • firefox、opera等での番号の数え方

    現在Javascriptを勉強中で 教材中での疑問なのですが 下の記述でどうしても腑に落ちないことがあります。 IEの方の[]の中の番号の数え方は分かるのですが firefox用ではどういう数え方をすれば node[0].childeNodes[5].childeNodes[1].innerHTML......... という数え方になるのでしょうか? 開始タグと終了タグを分けて数えているのでしょうか? 分かる方回答お願いします。 // IE用 function change(){ var node = document.getElementsByTagName("body"); node[0].childNodes[2].childNodes[0].innerHTML = "変更しました"; } // FireFoxやOpera用 function change(){ var node = document.getElementsByTagName("body"); node[0].childNodes[5].childNodes[1].innerHTML = "変更しました"; } --------HTML---------- <body> <h1>サンプル3</h1> <p>ここが変わります。</p> <div> <p>深いノード1</p> <p>深いノード2</p> </div> <form> <input type="button" value="変更" onclick="change();"> </form> </body>

  • このJavaScriptソースを解説して下さい

    JavaScript勉強中です。とあるサイトのソースの一部なのですが 何が書いてあるのかわかりません。 どなたか解説してください。 ----------ソースここから---------- <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-23877599-2']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> ----------ソースここまで---------- 全体的にわからないのですが、1行目だけでも教えてください。 var宣言で、論理和?(||)が使われてて、さらに配列?らしき括弧が続いてます。 これはなんという構文なのですか?

  • ★★★メタ文字変換後、swfのロードに失敗する件

    【OS】Windws XP HomeEdition 【ブラウザ】InternetExplorer7 ご覧頂きまして誠に有難う御座います。 皆様のお知恵を貸して頂ければ幸いです。 現在、下記ソースで『a.swf』ファイルを読み込む様にWEBページの制作をしております。 【参考ソース】 <?xml version="1.0" encoding="shift_jis"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> <link rev="MADE" href="mailto:★" /> <script type="text/javascript" src="swfLoad.js"></script> <title>★★★</title> <link rel="index" href="./index.html" /> <link rel="MAIN" href="./main.html" /> <script type="text/javascript"> function getOsName() { var osName = navigator.userAgent.toUpperCase(); var rtn; if(osName.indexOf("WIN") >= 0) { rtn = "Win"; } else if(osName.indexOf("MAC") >= 0) { rtn = "Mac"; } return rtn; } function getBrowserName() { var ua = navigator.userAgent.toUpperCase(); var rtn = ""; if (ua.indexOf("MSIE") >= 0){ rtn = "Explorer"; } else if (ua.indexOf("FIREFOX") >= 0) { rtn = "FireFox"; } else if (ua.indexOf("NETSCAPE") >= 0) { rtn = "Netscape"; } else if (ua.indexOf("SAFARI") >= 0) { rtn = "Safari"; } else if (ua.indexOf("OPERA") >= 0) { rtn = "Opera"; } return rtn; } var dataID; var osVersion; var w = screen.width; var h = screen.height; if(getOsName()=="Mac"){ h-=30; } if(!(getOsName()=="Win"&amp;&amp; getBrowserName()=="Explorer")){ moveTo(0,0); resizeTo(w,h); } if(getOsName()=="Mac"&&(getBrowserName()=="FireFox"||getBrowserName()=="Safari")){ osVersion = 0; }else{ osVersion = 1; } if(w<1280){ dataID = 1; }else if(w<1600){ dataID = 2; }else{ dataID = 3; } function mailto(str){ location.href="mailto:?subject=URL???N?G?X?g&body="+parseURL(str); } function parseURL(url){ var rc = "%0D%0A"; var rtn = ""; var index = 0; for(var i=0;i<30;i++){ index = url.indexOf(","); if(index == -1){ break; } rtn += url.substr(0,index); rtn += rc; url = url.substr(index+1); } rtn+=url; return rtn; } </script> <style type="text/css"> body { margin:0px; padding:0px; background-color:#ffffff; overflow:hidden; } </style> </head> <body> <script type="text/javascript"> swfLoad(); </script> </body> </html> この状態だと当方の意向に沿ったswfの再生が可能なのですが、 W3Cチェッカーにて診断した所『メタ文字(例`>` は `&gt;` )』は変換した方が正式な書き方だと言う事が判りました。 http://www.esitenet.com/htmllint/htmllint.html しかし、この基準に沿って全ての『メタ文字』を変換した所、今まで正常に再生されていたswfは再生されなくなり、『dateIDは宣言されていません』とエラーが返って来る様になりました。 W3Cチェッカー上での正式な書き方としての点数は上がりましたが、この問題をバランス良く解決するにはどうすれば良いか困惑しております。 上記の問題点がお判りの方がいらっしゃいましたら、是非とも対処方法をご教授願いたく投稿させて頂きます。 大変お手数ですが、何卒よろしくお願い致します。

  • cssの振り分けについて

    下記のjavascriptの内容でわからないのでおしえてください。 if(cssFile){ if (document.getElementById && !opera5 && !opera6 && !(mac && ie5) && !icab){ var head = document.getElementsByTagName('HEAD').item(0); var newLink = document.createElement('LINK'); newLink.rel = "stylesheet"; newLink.type = "text/css"; newLink.href = cssFile; head.appendChild(newLink); }else{ document.open(); document.write('<link rel="stylesheet" href="' + cssFile + '" type="text/css">'); document.close(); } } よろしくお願いします。

  • CSSをあとから読み込みたい。

    「CSS読み込み」クリックで、追加CSSを読み込みたいのですが、 以下のやり方でIE6以外ではできたのですがIE6で動きません。 どなたかアドバイスいただけると幸いです。 ▼JS=============================================================== function roadcss(){ if(navigator.userAgent.indexOf("MSIE") > -1){ document.createStyleSheet('/answer.css'); } else { var tag=document.createElement('link'); tag.setAttribute("type","text/css"); tag.setAttribute("rel","stylesheet"); tag.setAttribute("href","/answer.css");&#8203; document.getElementsByTagName('head')[0].appendChild(tag); } } ▼HTML============================================================= <a href="javascript:void(0)" onClick="roadcss()">CSS読み込み</a>

  • Google Analytics トラッキングコードについて

    Google Analytics トラッキングコードについて ホームページのhead部分にこのスクリプトを埋め込んでくださいとありますが、 外部のJavaScriptに埋め込む方法はないでしょうか?外部のファイルにコピペしてみたのですがトラッキングコードを認識できませんでした。 <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-18744062-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script>

  • Safariを判別し別ページに飛ばすには

    javascriptでブラウザを判別して、ブラウザによって違うページに飛ばしています。 基本的にはIEとそれ以外なのですが、Safariだけが別ページに飛んでくれません。(index.htmlにいたままになる) 下記のようにしていますが、どうすれば飛ぶようになるでしょうか? よろしくお願いします。 <script type="text/javascript"> if(navigator.userAgent.indexOf("MSIE") != -1){ window.location.href = "index.html";}     : else if(navigator.userAgent.indexOf("safari") != -1){ window.location.href = "index2.html";} </script>

  • FireFoxでJavascript「window.close()」が効きません。

    別ウィンドウを開いて「閉じる」ボタンをクリックするとウィドウを閉じる、というレイアウトを作成しているのですが、 <A HREF="javascript:window.close()">ウインドウを閉じる</A> では、firefoxでは動作しません。 情報を探してみて、以下のようなソースが有効なようなのですが、 <head>の中に以下を記述。 <script type="text/javascript" language="JavaScript"> <!-- function close_win(){ var nvua = navigator.userAgent; if(nvua.indexOf('MSIE') >= 0){ if(nvua.indexOf('MSIE 5.0') == -1) { top.opener = ''; } } else if(nvua.indexOf('Gecko') >= 0){ top.name = 'CLOSE_WINDOW'; wid = window.open('','CLOSE_WINDOW'); } top.close(); } --> </script> で、閉じるボタンを置きたい場所に <A HREF="javascript:close_win()">ウインドウを閉じる</A> が、ローカルで見ている範囲ですが、動作しません。 ページ内リンクみたいにページトップに戻るだけ。。。 ちなみにIEとネスケでは正常に動作しました。 どなたかお分かりになる方、ご教授願えませんか? 宜しくお願いします。