• 締切済み

URLの値を取得

JavaScritpt初心者です。 はてなブックマーク件数取得APIの使い方についてです。 URLで取得できる数値を、関数でreturnしたいです。 URL=http://api.b.st-hatena.com/entry.count?url=https://www.google.co.jp/ したいこと(不完全) function test(){ return <script src="http://api.b.st-hatena.com/entry.count?url=https://www.google.co.jp/"></script> } いろいろ調べてますが、、、情けないです。 使用例 http://d.hatena.ne.jp/amachang/20090811/1249963519 API公式 http://hatena.g.hatena.ne.jp/hatenabookmark/20090811/1249961864

noname#191254
noname#191254

みんなの回答

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.4

こんにちは。 とりあえず組み込むならこんな感じになると思いますよ。 (もっとよい方法があるかもしれませんが) Ajax通信を簡単に行うためにjQueryを併用しています。 ==== JavaScript google.load ( "feeds", "1" ); google.load ( "jquery", "1" ); function initialize() { // 複数のURLから取得できるAPIを利用 var apiURL = 'http://api.b.st-hatena.com/entry.counts'; // ターゲットとなるURLを保持する配列 var urls = new Array(); var feed_entry = new google.feeds.Feed ( "http://rssblog.ameba.jp/staff/rss.html" ); feed_entry.setNumEntries ( 5 ); feed_entry.load(function (result) { if (!result.error) { var container = document.getElementById ( "entry" ); var htmlsur = ""; for ( var i = 0; i < result.feed.entries.length; i ++ ) { var entry = result.feed.entries[i]; if ( entry.title.indexOf('PR') == 0 ) { // PRの場合はURLを取得しない } else { // URLを追加 urls.push ( entry.link ); } } $.ajax ({ type: 'GET', url: apiURL, data: { url: urls }, traditional: true, dataType: 'jsonp', success: function ( data, dataType ) { // { "URL": 件数 }で返ってくる for ( var i = 0; i < result.feed.entries.length; i++ ) { var entry = result.feed.entries[i]; htmlsur += "<p>"; if ( entry.title.indexOf('PR') == 0 ) { // PRは表示しない } else { htmlsur += '<a href="' + entry.link + '">' + entry.title + '</a>'; } // URLをキーに件数を取得してHTML文字列に追加する htmlsur += '<span class="count">' + data[entry.link] + '</span>'; htmlsur += "</p>"; } container.innerHTML = htmlsur; }, error: function ( v1, v2, v3 ) { } }); } else { alert(result.error.message); } }); } google.setOnLoadCallback(initialize);

noname#191254
質問者

補足

お忙しいところ、誠にありがとうございます。 とても参考になりました。 私の力不足のため、ゆっくりとコードを拝見して理解していきたいと思います。申し訳ありません。 jQueryというのは、初めて見ました。

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.3

>APIでURL、名前までは取得できますが、それぞれのはてなブックマーク数(当該)が取得できていません。さらに別のABIを使うため。 > >教えていただいたコードですと、onloadということですが、 >取得するURLがその都度変わるため困っています。 こんにちは。 どのAPIを利用してURLと名前を取得していますか? それに件数は含まれてこないのでしょうか? 現在、どのように実装しているか補足ください。 今、どのように動いてるかがわからないと、ずれた回答をしてしまいそうです。

noname#191254
質問者

お礼

お忙しいところ、大変ありがとうございます。 ソースをWebにあげました。 http://help2014.web.fc2.com/ 恐縮ですが、もしできましたら、ご確認いただければ幸いです。

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 >ありがとうございます。とても勉強になりました。 >jsファイル内に別のjsファイル読み込みは常識的にしないのでしょうか。 常識非常識ではなく、必要なら読み込みます。 さきのやり方だと、難しいことを考えずに実装できます。 > > >abc.jsファイル > >function hoo(){ >var container = document.getElementById("idtest"); >var htmlsuc=""; >htmlsuc+='<script src="http://api.b.st-hatena.com/entry.count?url=http%3A%2F%2Fwww.example.com%2F&callback=document.write"></script>'; > >container.innerHTML = htmlsuc; >} > > >↑上手く行きませんが。 >困っています。 動的に読み込むなら以下のようになると思います。 ==== test.js var count = 0; window.onload = function() { var script = document.createElement('script'); script.type = 'text/javascript'; script.src = 'http://api.b.st-hatena.com/entry.count?url=http%3A%2F%2Fwww.example.com%2F&callback=hoo'; document.body.appendChild ( script ); } function hoo ( value ) { count = value; var container = document.getElementById("idtest"); container.innerHTML = value; } function getCount() { return count; } ==== HTML <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>8440839</title> <script src="test.js"></script> </head> <body> <div id="idtest"></div> <button onclick="alert(getCount());">retrunされる値を表示</button> </body> </html>

noname#191254
質問者

お礼

度々すみません。 嫁のはてブ http://hatebu.straightline.jp/ のようなサイトを作りたいと考えてます。 APIでURL、名前までは取得できますが、それぞれのはてなブックマーク数(当該)が取得できていません。さらに別のABIを使うため。 教えていただいたコードですと、onloadということですが、 取得するURLがその都度変わるため困っています。 window.onloadを使わずにできないでしょうか。

noname#191254
質問者

補足

早速のご回答ありがとうございます。 回答者様のような才能が本当にうらやましいです。 自分にはセンスや頭のなさを痛感します。 一体どうしたら、そのようになれるか。。。 教えていただいたコードで、試行錯誤してみます。 自分は、理解力がなくノロマなので、時間がかかってしまいます。 また、質問させていただくかもしれませんが、何卒よろしくお願いします。

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 以下のようにすれば変数に値が入ります。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>8440839</title> <script> var bookmarkCount = 0; function setBookmarkCount ( value ) { // callback関数 bookmarkCount = value; } function getBookmarkCount() { return bookmarkCount; } window.onload = function() { // ページロード後に取得した件数の確認 alert ( getBookmarkCount() ); } </script> <script src="http://api.b.st-hatena.com/entry.count?url=http%3A%2F%2Fwww.example.com%2F&callback=setBookmarkCount"></script> <style> </style> </head> <body> </body> </html>

noname#191254
質問者

お礼

ありがとうございます。とても勉強になりました。 jsファイル内に別のjsファイル読み込みは常識的にしないのでしょうか。 abc.jsファイル function hoo(){ var container = document.getElementById("idtest"); var htmlsuc=""; htmlsuc+='<script src="http://api.b.st-hatena.com/entry.count?url=http%3A%2F%2Fwww.example.com%2F&callback=document.write"></script>'; container.innerHTML = htmlsuc; } ↑上手く行きませんが。 困っています。

関連するQ&A

  • はてなブックマーク件数取得APIをPHPで使うには

    はてなブックマーク件数取得API http://developer.hatena.ne.jp/ja/documents/bookmark/apis/getcount 上記のページを見て、 http://api.b.st-hatena.com/entry.count?url=[ブックマーク数を取得したいURL] でブックマーク件数が取得できることが分かったのですが、 このブックマーク件数をPHPの変数に入れるには一体どうすればいいのでしょうか。 例えば、変数 $num に int型で指定URLのブックマーク数を入れるようなことがしたいのですが…。

    • ベストアンサー
    • PHP
  • どうしてもボタンが横一列に並ばないのです (/_;

    WordPress日本語版3.01利用中です。 現在テーマをカスタマイズ中ですが、ソーシャルブックマークをsingle.phpに追加したところ、3つあるボタンのうち、2つは横に並ぶのに3つ目のボタンがどうしても改行された状態で表示されてしまいます。 原因は何が考えられるでしょうか。週末つかって頑張ったのですが、どうしても解決にいたりません。ノイローゼになりそう (/_;) single.phpのボタン表示を記述している部分です。 <div class="social"> <div class="tweet_button"> <a href="http://twitter.com/share" class="twitter-share-button" data-text="<?php the_title(); ?>" data-url="<?php the_permalink() ?>" data-count="horizontal" data-via="自分のID">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div> <div class="hatebu_button"> <a href="http://b.hatena.ne.jp/entry/<?php the_permalink() ?>" class="hatena-bookmark-button" data-hatena-bookmark-title="<?php the_title(); ?>" data-hatena-bookmark-layout="standard" title="このエントリーをはてなブックマークに追加"><img src="http://b.st-hatena.com/images/entry-button/button-only.gif" alt="このエントリーをはてなブックマークに追加" width="20" height="20" style="border: none;" /></a><script type="text/javascript" src="http://b.st-hatena.com/js/bookmark_button.js" charset="utf-8" async="async"></script></div> <div class="facebook"> <fb:like href="<?php the_permalink() ?>" layout="button_count" show_faces="false"></fb:like></div> </div> ※facebookはiflameのパターンも試しました。上記はAppID取得による短縮コードで表示じたいに問題はありません。 CSSは、 /* Begin Social Media */ div.post .social { margin-top: 2px; } div.post .social .tweet_button { float: left; display: inline; width: 100px; } div.post .social .hatebu { display: inline; } div.post .social .facebook { display: inline; } div.postcontent { clear: both; } /* End Social Media */ です。いったいどこの何が問題で3つのボタンが横一列にならないのでしょうか??? 皆さん教えて下さい。さんざん時間も頭もつかったけれど、解決できないでおります。 Twitter はてブ ←は、横に並ぶ facebook ←が、こんなふうに改行されてしまう。 Twitter はてブ facebook と並べたいのです・・・・・。宜しくお願いします!

  • RSSで取得したURLに文字列を追加と配置?

    現在googleのAPIを使いRSSからURLと画像を取得しています。 それで質問なんですが、その取得した(それぞれの)URL末尾に指定した同一の英数字を付加と、 表示する画像のレイアウト(現在は縦一列表示)を4×4とかにしたいとですがうまく出来ません>< 複数のURLだと、どの段階で??どう振り当てて組み込んだら良いのか?? レイアウトもCSSで試みましたが一括で処理されるので途中で区切っての配置が出来ず;; 複数の画像だとどうやって振り当てていくのかが判りません>< 初心者で申し訳ありませんがよろしく願いします。<m(__)m> <script type="text/javascript" src="googleのapiキー"></script> <script type="text/javascript"> google.load("feeds", "1"); function initialize() { var feed = new google.feeds.Feed("RSSのURL");   feed.setNumEntries(16); feed.load(function(result) { if (!result.error)   { var container = document.getElementById("feed"); for (var i = 0; i < result.feed.entries.length; i++) {var entry = result.feed.entries[i] ; var gazo = entry.content.match("<img.*jpg.*?>") if(gazo != null){container.innerHTML += "<p><a href='" + entry.link + "'>" + gazo +"</a></p>" } var div = document.createElement("div"); container.appendChild(div); } } }); } google.setOnLoadCallback(initialize); </script> <body onload="OnLoad()"> <div id="feed" ></div>

  • 別URLからのJSON取得がうまくいかないので教えてください

    楽天書籍検索APIをJSONで取得したいのですが、うまく表示されません。 以下のソースで何がまずいか教えていただけますでしょうか。 ※[YOUR_developerID]にはIDが入っているものとします <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>JSON</title> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript">google.load("jquery", "1.2.6");</script> <script type="text/javascript"> $(function(){ $.getJSON("http://api.rakuten.co.jp/rws/2.0/json?developerId=[YOUR_developerID]&operation=BooksTotalSearch&version=2009-03-26&keyword=%E3%82%AC%E3%83%B3%E3%83%80%E3%83%A0&sort=-releaseDate", function(jsonData){ $(jsonData.Body.BooksBookSearch.Items.Item).each(function(){ $("body").append(this.title+"<hr />"); }) }) }) </script> </head> <body>

  • はてなブックマークのエントリーのURLについて

    はてなブックマークのエントリーをのURLを見ると http://b.hatena.ne.jp/entry/~URL~ となってるのですがこのページはどういったURLの値の受け渡しをしているのでしょうか?普通PHPなどのファイルに値を渡す場合URLの後ろに「entry.php?url=~URL~」見たいにGETメソッドなどが付くと思うのですが。  この値の受け渡し方法の名称を教えてください。拡張子の無いファイルだからコンテントネゴシエーションかと思ったのですが違いますよね。

    • ベストアンサー
    • PHP
  • 【Javascript】外部scriptファイルを同一ページ内に埋め込むことは出来ますか【はてなダイアリー】

    QNo.3191576がカテゴリミスでしたので,JavaScriptカテゴリにて新しく立てさせていただきます.乱立申し訳ありません. Javascriptを同一htmlページ内に複数埋め込むことが出来ないかどうかで悩んでいます. はてなスターscript(http://s.hatena.ne.jp/js/HatenaStar.js)の一部改変したスクリプトを,自前のサーバーに保存したもの(仮にA.jsとB.jsとします)をはてなダイアリー(http://d.hatena.ne.jp)の同一ページ内に埋め込みたいのですが,これは無理でしょうか. 具体的には, /* Hatena.Star.AddButton */ Hatena.Star.AddButton = new Ten.Class({ base: ['Hatena.Star.Button'], initialize: function(entry) { this.entry = entry; this.lastPosition = null; var img = Hatena.Star.Button.createButton({ src: Hatena.Star.AddButton.ImgSrc, alt: 'Add S tar' }); this.observer = new Ten.Observer(img,'onclick',this,'addStar'); this.img = img; return img; }, ImgSrc: Hatena.Star.BaseURL + 'images/add.gif' の部分を, A.js … 'http://xxx.yyy.ne.jp/a.gif' B.js … 'http://xxx.yyy.ne.jp/b.gif' のようにして,2つの場合分けをしたいと考えています. Javascriptのことは分かりませんがこういうことが出来るのかな,と疑問に思ったのでどなたか教えていただけませんでしょうか.

  • Googleページランクの取得について質問です。

    Googleのページランクを取得し、自サイトに掲載したいと考えています。 できればAPIを使わずに取得する方法が無いか探していまして、 下記ページのやり方を応用して取得を試みているのですがうまく行きません。 http://hpcgi2.nifty.com/nonnon/NONprch/NONprch.cgi?url=https%3A%2F%2Ftwitter.com%2F 何かいい方法があれば教えていただけませんでしょうか? APIを使わずにできるのが理想ですが、APIを用いたやり方でも構いませんのでよろしくお願いします。

  • file関数によるXMLの取得について

    XMLの取得をしようとしているのですが、PHPのバージョンが4.1のためSimpleXMLが使えずfile関数を使おうとしています。 例えば取得したいXMLの値が、 <Result>  <Title>タイトル</Title>  <Summary>  文章  </Summary>  <Url>  http://  </Url> </Result> だった場合、<Title>,<Summary>,<Url>はどのように取得するのでしょうか? 以下の方法で取得をしてみようとしたのですが、これだと<Summary>と<Url>は取得できるのですが<Title>が取得できません... ↓<Title>を取得する場合 $api_url = "http://"; $api_url2 = implode("",file("$api_url")); $title_exp = explode("<Title>",$api_url2); $title_count = count($title_exp); for($i=0;$i<$title_count;$i++){ $title = explode("</Title>",$title_exp[$i]); }; <Title>が他の項目と違うところは改行がない部分だけのようなのですが、どのようにすれば取得できるのでしょうか? 色々なサイトを見ながら手探りで学んでいますのでおかしなところがあるかもしれません。 その点もご指摘いただければ幸いです。 宜しくお願いします。

    • 締切済み
    • PHP
  • 被リンク元URL

    被リンクの元URLを全件取得したいのですが、 phpで可能でしょうか? どこかのエンジン(Googleなど)のAPIに取得出来る関数は ありませんでしょうか?

    • 締切済み
    • PHP
  • GoogleMapsAPI Key取得ができない

    HPを変更しました。 google maps を入れたいのです。 しかし、下記コメントが出てます。 このウエブサイトには 別のgoogle maps apiキーが必要です。新しいキーは http://code.google.com/apis/maps/documentation/javascript/v2/introduction.html#Obtaining_Key で作成できます。 ここを調べて見ても、apiキーが取得できません。 Google Maps APIを使うための API Key の取得が、V3では不要になりました。 と書いてありますが、現状api keyを取得しないと、使えません。 いろいろ調べたのですが、v2の取得方法は書いてありますが、現状では役に立ちません。 http://code.google.com/intl/ja/apis/maps/signup.html で登録できないから、質問しています。 具体的なやり方を教えてください。

専門家に質問してみよう