Benutzer:Magnus Manske/isbn ext.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
var isbn_ol_key ;

function isbn_call_json ( url ) {
  var script = document.createElement('script');
  script.setAttribute('src', url);
  document.getElementsByTagName('head')[0].appendChild(script); 
}

function isbnrecall ( j ) {
  if ( j['status'] != 'ok' ) return ;
  if ( undefined == j['result'] ) return ;
  if ( undefined == j['result'][0] ) return ;
  isbn_ol_key = j['result'][0] ;
  var url = "http://openlibrary.org" + isbn_ol_key + ".json?callback=isbnrecall2" ;
  isbn_call_json ( url ) ;
}

function isbnrecall2 ( j ) {
  var html = '<div style="background-color:#EEEEEE;border:2px solid #DDDDDD;padding:2px">' ;
  if ( !(undefined===j['by_statement']) ) html += j['by_statement'] + '<br/>' ;
  html += '<h2>' ;
  if ( !(undefined===j['title_prefix']) ) html += j['title_prefix'] + ' ' ;
  html += j['title'] + '</h2>' ;
  if ( !(undefined===j['subtitle']) ) html += '<i>' + j['subtitle'] + '</i><br/>' ;

  if ( !(undefined===j['publishers']) ) {
    for ( var i = 0 ; i < j['publishers'].length ; i++ ) {
      if ( i > 0 ) html += '; ' ;
      html += j['publishers'][i] ;
    }
    if ( j['publishers'].length > 0 ) html += ' ' ;
  }

  if ( !(undefined===j['edition_name']) ) html += j['edition_name'] + ' ' ;
  if ( !(undefined===j['pagination']) ) html += j['pagination'] ;
  if ( !(undefined===j['publish_places']) ) html += j['publish_places'] + ' ' ;
  if ( !(undefined===j['publish_date']) ) html += j['publish_date'] ;

  html += ' <a href="http://openlibrary.org' + isbn_ol_key + '">OpenLibrary-Eintrag</a>' ;
  html += '</div>' ;
  var div = document.createElement ( 'div' ) ;
  div.innerHTML = html ;

  var target = document.getElementById('jump-to-nav') ;
  var parent = target.parentNode ;
  parent.insertBefore ( div , target.nextSibling);
}

function isbn_ext() {
  var isbn = document.getElementById('isbn').value ;
  var url = "http://openlibrary.org/api/search?q={\"query\":\"" + isbn + "\"}&callback=isbnrecall" ;
  isbn_call_json ( url ) ;
}

if ( wgPageName == "Spezial:ISBN-Suche" ) addOnloadHook(isbn_ext);