如何使用jQuery和Google Books API根据ID而不是ISBN加载查看器

时间:2014-01-07 17:05:50

标签: javascript jquery api

我无法让Google Books API查看器处理不仅仅是“预览”但完全免费的“阅读”版本的图书。唯一的问题是,我没有看到“阅读”版本的ISBN,当我尝试将书籍“id”与Google图书API查看器一起使用时,它不起作用。让我解释一下。

以下是使用仅预览的图书的Google图书API查看器的工作版本:

这是我用作预览书的参考书:

Jessica's Mother by Hesba Stretton

<html>
<head>
<style type="text/css">
#viewer {width:700px;height:80%;padding:30px;margin-left:auto;margin-right:auto;margin-top:20px;background:#fff;box-shadow: 2px 2px 5px 4px #888888;border-radius:10px;}
#viewerCanvas {width:100%;height:100%;}
</style>
<title>Removing the Footer in Google Books Embedded Viewer API Example</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">

    google.load("books", "0");

    function initialize() {
      var display_options = {showLinkChrome: false};
      var viewer = new   google.books.DefaultViewer(document.getElementById('viewerCanvas'),display_options);

      viewer.load('ISBN:1935626760', bookNotFound, removePreviewFooter);
    }

    function bookNotFound() {
      document.getElementById('viewerCanvas').innerHTML="<h1>No Preview!</h1>";
    }       

    function removePreviewFooter() {
      $('#viewerCanvas > div > div:nth-child(2)').css('display','none');
    }

    google.setOnLoadCallback(initialize);

</script>
</head>

<body style="background:#ececec;">
  <div id="viewer">
    <div id="viewerCanvas"></div>
  </div>
</body>
</html>

这对本书很有用,因为我知道ISBN号,“1935626760”

这是一个问题,那些完全免费的书籍不是“仅预览”而是“阅读”版本?您是否可以使用jQuery和Google Books API让查看器基于id而不是那些没有ISBN的书籍的ISBN?

例如,上述代码不适用于以下书籍:

Lost Gip by Hesba Stretton

这本书的ID为PmsNAAAAYAAJ但我没有ISBN编号。有没有办法我仍然可以使用Google图书查看器API,即使我只知道ID?

基本上,我正在尝试这样做,所以我可以在我的网站上安装一个嵌入式书籍阅读器,用于“阅读”版本的书籍,如Hesba Stretton的书“Lost Gip”。

如果有人有任何想法或更好的方法来解决这个问题,我将非常感激。谢谢!

1 个答案:

答案 0 :(得分:4)

是的,viewer developer guide

中有这个问题的答案

鉴于ID PmsNAAAAYAAJ使用查看器加载方法,将'ISBN:1935626760'替换为'PmsNAAAAYAAJ':

viewer.load('PmsNAAAAYAAJ', bookNotFound, removePreviewFooter);