8

私はReadiumでうまく機能するスクリプトを含むePub3の本を持っていますが、iBooksでは部分的にしか機能しません。私の推測では、JavaScriptはある時点でエラーになっています(ただし、標準のWebアプリとして、Safariでもまったく同じコードが正常に機能します)。これをデバッグする方法について何か考えはありますか?

4

2 に答える 2

5

端末アプリで次の行を使用して、iBooks で Webkit Web インスペクターを有効にして、その設定を変更できます。

defaults write com.apple.iBooksX WebKitDeveloperExtras -bool YES

iBooks を再起動すると、コンテキスト メニュー ([詳細] > [インスペクターを表示]) にインスペクターが表示されます。コンソールなどを含むすべてのインスペクター ツールが利用可能です。

于 2015-03-01T20:53:34.197 に答える
0

Azardi Online を使用して、ブラウザーを使用してファイルを読み取ることができます。そこからビルトインまたはアドイン コンソールを使用してデバッグできます。または、コンソール シムを作成することもできます。

if(!console) {
  console = {
    "_log" : [],
    "log" : function() {
      var arr = [];
      for ( var i = 0; i < arguments.length; i++ ) {
        arr.push( arguments[ i ] );
      }
      this._log.push( arr.join( ", ") );
    },
    "trace" : function() {
      var stack;
      try {
        throw new Error();
      } catch( ex ) {
        stack = ex.stack;
      }
      console.log( "console.trace()\n" + stack.split( "\n" ).slice( 2 ).join( "  \n" ) );
    },
    "dir" : function( obj ) {
      console.log( "Content of " + obj );
      for ( var key in obj ) {
        var value = typeof obj[ key ] === "function" ? "function" : obj[ key ];
        console.log( " -\"" + key + "\" -> \"" + value + "\"" );
      }
    },
    "show" : function() {
      alert( this._log.join( "\n" ) );
      this._log = [];
    }
  };

  window.onerror = function( msg, url, line ) {
    console.log("ERROR: \"" + msg + "\" at \"" + "\", line " + line);
  }

  window.addEventListener( "touchstart", function( e ) {
    if( e.touches.length === 3 ) {
      console.show();
    }
  } );
}

参考文献

于 2013-03-11T23:09:17.390 に答える