• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javascriptからURLに含まれる日本語のクエリを渡す方法)

javascriptからURLに含まれる日本語のクエリを渡す方法

BLUEPIXYの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

#2>アルファベットのみの引数の場合(例としては「star」)に「16進数を指定してください」エラーがWinIEで出力されてしまいます すいません、想像力が欠如していますので、そのような現象の発生するRSS(質問文のRSSでは発生しませんよね?)のURLを教えてください。

optional
質問者

補足

すいません、じっくり見てみたところ、色々誤解していました。cgiにリクエストしてキャッシュされたデータを受け取る時にユニコードに変換するためcgiを書き換える必要があったということですね。 実際にはクライアント側からcgiを呼ぶときに s.src = "http://***/xml2json.cgi?url=http%3A%2F%2Fd.hatena.ne.jp%2Fkeyword%2F%E6%9D%B1%E4%BA%AC%E5%9C%B0%E8%A3%81%3Fmode%3Drss"; というように解説ページの通りの呼び方をしています。 具体的に、ダメなのはこれです(star) url=http%3A%2F%2Fwww.*******.com%2Frss%2Ftag%2Fstar.rss でもこれだと大丈夫です(滝川クリステル) url=http%3A%2F%2Fwww.*******.com%2Frss%2Ftag%2F%E6%BB%9D%E5%B7%9D%E3%82%AF%E3%83%AA%E3%82%B9%E3%83%86%E3%83%AB.rss ダメなやつでも引数のURLをブラウザからじか打ちすると表示されます。オブジェクトがNullというわけでもありません。組み合わせを色々試してみたのですが「aiko=NG」「プレイステーション=NG」「クーデター=OK」「マジンガーZ=OK」と法則が読めません。いずれもNullではありません。何卒ご指導いただけましたら幸いです。

関連するQ&A

  • 1ページ内で複数のwindow.onload = functionの動作

    Ajaxを使用して取得してきたRSSをinnerHTMLで表示するスクリプトを1ページ内に複数設置したいのですが、うまくいきません。 prototype.jsを使うと複数のonloadを制御できるという記事を参考にしたのですが、動作しませんでした。(WindowsIE6で検証してます) http://hori-uchi.com/archives/2005_09.html BODY以下のソースはこちらです。現状だとどちらか一つだけなら動作する感じです。これをどちらも動作する方法をご教授いただけませんでしょうか。宜しくお願いします。 //RSS取得1箇所目 <div id="p1">roading1</div><script> window.onload = function(){ var u = document.getElementsByTagName("head")[0].appendChild(document.createElement("script")); u.type = "text/javascript"; u.charset = "utf-8"; u.src = "http://###"; } var xml = {}; xml.onload = function(data){ var items1 = data.items; var g = "\n"; for(var i = 0; i < Math.min(items1.length, 20); i++){ // } document.getElementById("p1").innerHTML = g; } </script> //RSS取得2箇所目 <div id="p2">roading2</div><script> window.onload = function(){ var u = document.getElementsByTagName("head")[0].appendChild(document.createElement("script")); u.type = "text/javascript"; u.charset = "utf-8"; u.src = "http://***"; } var xml = {}; xml.onload = function(data){ var items2 = data.Result; var h = "\n"; for(var i = 0; i < Math.min(items2.length, 20); i++){ // } document.getElementById("p2").innerHTML = h; } </script>

  • RSSのpubDataを日本語フォーマットにしたい JSON使用

    自作のhtmlで作成したHPに、RSSの情報を表示させています。 http://q.hatena.ne.jp/1165960016 ↑こちらの、一番下の、 "XML 2 JSON service"を使用した方法で、表示していますが… <html> <head></head> <body> <script type="text/javascript" src="http://app.drk7.jp/xml2json/var=HATENARSS&url=http://~★以下任意のアドレス★" charset = 'UTF-8'></script> <script type="text/javascript"><!-- var items = HATENARSS.data['channel']['item']; /* 表示設定 */ var readCount = 10; //対象とする記事の件数 var StrLengthDescript=150; //表示する本文の文字数 /* 取得したデータを表示する */ var html = '<dl>'; for(var i = 0 ; i < items.length && i < readCount ; i++ ){ var pubDate = items[i]["pubDate"]; pubDate = pubDate.replace(" ", ""); //全角スペースを削除 if(pubDate.length > StrLengthDescript){ pubDate = pubDate.substr(0,StrLengthDescript)+'...' }; html += '<dt><a href="' + items[i]["link"] + '">' + items[i]["title"] + '</a></dt><dd>'+ pubDate + '</dd>'; }; html += '</dl>'; document.write(html); //--> </script> </body> </html> このような方法で、pubDateを、<dd></dd>の部分に表示させていますが… Fri, 19 Jun 2009 18:00:00 +0900 と、そのままで表示されてしまいます。 これを、"2009年6月19日"と表示させたいのですが… どのようにしたら良いでしょうか。 pubDateを取得して…YYYY/MM/DDなどと置き換えるのかな?と思いますが イマイチここからどうやったらいいのか分かりません…。 ご存知の方、教えていただけたら幸いです。 よろしくお願いいたします。

  • スクリプトの解説してもらいたいのですが・・

    このRSSを生成するスクリプトを翻訳して欲しいというか、解説してもらいたのです・・・勉強しろ!と怒られるかもしれませんが、何とか教えていただければ助かります。 ====================== $item_title = "dt"; #タイトルとリンクを抜き出す要素 $item_descr = "dd"; #説明文を抜き出す要素 $host = "http://your.domain"; #ソースからタイトル、リンク、説明文を抽出 while(<>){ if(m|<${item_title}.*?><a href="(.*?)">(.*?)</a>|){ $link[++$items] = $1; $items_list .= qq( <rdf:li rdf:resource="$host$1"/>\n); $title[$items] = $2; $isItem = 1; }elsif(m|<${item_descr}.*?>(.*?)</${item_descr}>| and $isItem){ $str = $1; $str =~ s/<.*?>//g; #不要なマークアップを削除 $descr[$items] = $str; $isItem = 0; #説明文は1要素だけにしておく } } #以下、RSSの構文に従って出力 print <<EOF; <?xml version="1.0" encoding="utf-8" ?> <rdf:RDF xmlns="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xml:lang="ja"> <channel rdf:about="http://your/rss/file"> <title>Your Channel Title</title> <link>http://your/home/page</link> <description>Your channel description</description> <items> <rdf:Seq> $items_list </rdf:Seq> </items> </channel> EOF for $i (1..$#link){ print <<EOF; <item rdf:about="$host$link[$i]"> <title>$title[$i]</title> <link>$host$link[$i]</link> <description>$descr[$i]</description> </item> EOF } print "</rdf:RDF>\n";

  • Javascriptで動的にテーブル表示したい

    下記、 PHPの$title 、 $link 、$description を Javascriptで動的にテーブル表示したいです。 表示したいテーブルをHTMLで書くと、 ※以下の3列、複数行になります。 <TABLE> <TBODY> <TR> <TD width="108" height="100"></TD> <TD width="229" height="100"></TD> <TD width="396" height="100"></TD> </TR> </TBODY> </TABLE> 初心者であるため具体的に書き方を御指導お願いできればと思います。 何卒、よろしくお願い致します。 ----------------------------------- <?php 【省略】 header("Content-type: application/x-javascript"); echo 'document.open();'; // open if ($rs = $rss->get($url_flux_rss)) { for($i=0;$i<$limite;$i++) { $title = mb_convert_encoding($rs['items'][$i]['title'], $mojicode, 'auto'); $link = '<a href="http://xxx">' . $title . '</a><br />'; echo 'document.write(\'' . $link . '\');'; if ($d == 1) { $description = mb_convert_encoding($rs['items'][$i]['description'], $mojicode, 'auto'); echo 'document.write(\'' . $description . '<br /><br /><br />\');'; } } } else { echo 'document.write(\'' . $errormessage . '\');'; } echo 'document.close();'; // close ?>

  • PHPパーサー MagpieRSSについて

    PHPパーサーのMagpieRSSを使用しています。 読み込むxmlが更新されてもそれが反映されません。 また、htmlとして書き出す際に<p>タグにid名を付けたいのですが、idをつけるとエラーがでます。これはPHPでは文法的にまずいんでしょうか?下記が使用しているソースです。 重ねて質問なんですが、下記のソースでは1つのxmlしか読み込んでいませんが、複数のxmlを読み込むにはどうしたらいいのでしょうか。 よろしくお願いします。 <?php require_once 'rss_fetch.inc'; require_once 'rss_utils.inc'; $url = 'http://www.xxxxx/xxxxxx/index.xml'; $rss = fetch_rss($url); $title = $rss->channel['title']; $title = mb_convert_encoding($title, "UTF-8", "auto"); $rss->items = array_slice($rss->items, 0, 1); foreach ($rss->items as $item ) { $description = $item[description]; $description = mb_convert_encoding($description, "UTF-8", "auto"); $url = $item[link]; $date = date("Y.m.d", $item['date_timestamp']); echo "$description?n"; } ?>

    • ベストアンサー
    • PHP
  • JavaScriptのどこが間違いか教えてください。

    JavaScript初心者です。 以下のJavaScriptの中に間違った記述はありますか? ブログの更新情報をHPに載せるためのもので、 雑誌に書いてあったものを手打ちしたのですが、うまくいきません。 このJavaScriptのどこかに間違いがあると思っているのですが、 どなたかご指摘いただけませんでしょうか? 他に必要な情報はありますかね? <script type="text/javascript"> window.onload = function(){ //ロード画像の表示 $('rssbox').innerHTML = '<div style="text-align: center; margin: 50px 0"><img src="images/loadinfo.net.gif" width="24" height="24" alt="ロード中です" /></div>'; var url = "rss.php"; var http = new JKL.ParseXML(url); var output = '<ul>'; var func = function(data){ for(var i=0; i<=5; i++){ output += '<li><a href="' + data.rss.channel.item[i].link + '">' + data.rss.channel.item[i].title + '</a></li>'; } output += '</ul>'; $('rssbox').innerHTML = output; }; http.async(func); http.parse(); } </script>

  • javascriptに関する質問です

    9×9のます目一つ一つに・を表示させるプログラムをつくっているのですがなかなかうまくいきませんどなたかご教授ください <script language="JavaScript" type="text/javascript"> <!-- document.write("<center>"); document.write("<h1>・の表</h1>"); document.write("<table border>"); var i; var j; for (i =・;i=<9 ){ document.write("<tr>"); for(j =・;j=<9 ){ document.write("<td>"); document.write(i * j) document.write("</td>") } document.write("</tr>"); } document.write("</table>"); //--> </script>

  • (大至急)JavaScriptの質問です

    xmlファイルを読み込んで 書籍1: Title:ハリーポッター ・ ・ 書籍2: Title:広辞苑 ・ ・ 書籍3: ・ ・ のように表示させるJavaScriptのプログラム(拡張子はhtml)を作りたいのですが、上手く行きません。大至急教えて頂けないでしょうか?!本当に困ってます・・・ ///////////作りかけのJavaScriptプログラム//////// <HTML> <script> xmldoc=new ActiveXObject("Microsoft.XMLDOM"); xmldoc.load("Books.xml"); var str=""; var i=0,j=0,imax=0; imax = xmldoc.documentElement.childNodes.length; var Titles = xmldoc.documentElement.getElementsByTagName("Title"); var Authors = xmldoc.documentElement.getElementsByTagName("Author"); var Prices = xmldoc.documentElement.getElementsByTagName("Price"); for(var i=0;i< imax;i++){ str=str+xmldoc.documentElement.childNodes.item(i).text+"<BR />"; document.writeln(str); } </script> <body> </body> </HTML> ///////////作りかけのJavaScriptプログラム//////// ////////////Books.xml////////////// <?xml version="1.0" encoding="SHIFT_JIS" ?> <?xml-stylesheet type="text/xsl" href="kadai3.xsl" ?> <Books> <Book> <Title>ハリーポッター</Title> <Author>j.kローリング</Author> <Price>3800</Price> </Book> <Book> <Title>広辞苑</Title> <Author>鈴木太郎</Author> <Price>6800</Price> </Book> <Book> <Title>魚の図鑑</Title> <Author>田中雅夫</Author> <Price>4500</Price> </Book> </Books> ////////////Books.xml//////////////

  • 外部のxmlデータを呼び込むproxy.php

    はじめまして。 サイト内に外部のブログのxmlデータ(rss)をjFeedを使用して表示したいと 思い設定しておりますが苦戦しております。 あるサイトで外部のxmlデータを呼び込む際には、直接呼び込めないためproxy.phpを 介して設定するように書かれているのを参考に設定しているのですが。 うまくいきません。 html側の記述 <script type="text/javascript"> $(function(){ $.getFeed({ url:'proxy.php', ←ココの部分で表示したいブログのアドレス(url:'http://rssblog.ameba.jp/one78/rss20.xml')にするとサーバーのプレビューでは確認出来ますが、サーバーにアップしたとたん表示されません。 success: function(feed){ $('#myfeed').append('<h2><a href="'+feed.link+'">'+feed.title+'</a></h2>'); var s=""; for(var i=0; i<feed.items.length && i<10; i++){ var item=feed.items[i]; s+= '<dt id="updated">' + dateChanger(item.updated) + '</dt>'; //更新時間 s+='<dd><a href="'+item.link+'">'+item.title+'</a></dd>'; } $('#myfeed').append(s); } }); var dateChanger = function(str){ var mydate = new Date(str); yy = mydate.getFullYear(); mm = mydate.getMonth() + 1; dd = mydate.getDate(); if (mm < 10) { mm = "0" + mm; } if (dd < 10) { dd = "0" + dd; } datestr = yy + "." + mm + "/" + dd + ""; return datestr; }; }); --> </script> proxy.php側の記述 <?php header('Content-type: application/xml'); $handle = fopen('http://rssblog.ameba.jp/one78/rss20.xml', "r"); ←この表記であっているのか不安です。 if ($handle) { while (!feof($handle)) { $buffer = fgets($handle, 4096); echo $buffer; } fclose($handle); } ?> proxy.phpは上記のhtmlと同じディレクトリに格納しております。 以上、アドバイスお願いいただけたらと思います。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • MagpieRSSを使用して自分のHPにxmlを表示させる方法

    お世話になります。 データベースよりxmlを生成し、自分のHPに1ページに埋め込みたいと思っています。 いろいろなサイトを参考に、MagpieRSSを使用して表示させたいのですが、コードのサンプルに記載されている他サイトのRSS・xmlは表示できるのですが、ローカルのxmlは下記のエラーが出てしまい表示できません。 Warning: MagpieRSS: Failed to parse RSS file. (not well-formed (invalid token) at line 9, column 21) in /aaa/rss/rss_fetch.inc on line 238 変更した部分は、表示するxmlのURLのみです。 使用しているphpのバージョンは4.34、MagpieRSSのバージョンは0.72です。 問題のrss.phpのソース↓ <?php require_once 'rss_fetch.inc'; define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); $url = 'http://www.aaa.com/rss.xml'; $rss = fetch_rss($url); if ($rss && !$rss->ERROR) { drawRSS($rss); }else{ echo "取得できませんでした。"; } function drawRSS($rss){ $items = array_slice($rss->items, 0, 10); echo "<ul>\n"; foreach ($items as $item ) { $title = $item[title]; $title = mb_convert_encoding($title, "UTF-8", "auto"); $url = $item[link]; $description = $item[description]; $description = mb_convert_encoding($description, "UTF-8", "auto"); echo "<li><a href=\"$url\">$title</a></li>\n$description"; } echo "</ul>\n"; } ?> 何か、対処方法をご存知の方教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • XML