2016-04-12 5 views
0

間違った幅を取得アンドロイドのjavascriptの幅かつてp要素の幅がwebviewの画面幅よりも広くなると、次のコードでp要素の最後までスクロールします。 私は私がWebViewの中に「P」html要素にテキストを追加するjavascript関数を呼び出しボタンのいずれかを押した後、私のアンドロイドのxmlレイアウトでいくつかのボタンを持っていますが、

window.scrollBy(document.getElementById("myp").scrollWidth,0) 

が、それをのdocument.getElementById(「MYP」)。scrollWidthは私に間違った幅を取得していると私は幅をチェックするにconsole.logを使用してコードをデバッグしているようだ、適切として、時々、このコードのdoesntの仕事

時には同じ幅でくっついていて、新しいテキストに関して更新していないと思われます。これはp要素に追加しています。私も$(document).width()を使って試してみました。

これは私のjavascript関数は、私が呼んjavascript1.jsファイルに含まれます。)

function append(input){ 

    var element=$('#myp')[0]; 
    element.innerHTML="$$" + input + "$$"; 
    window.scrollBy(element.scrollWidth,0); 

     M.parseMath(element) ; 
     } 

M.parseMath(正常に動作します私は数学の数式を表示するためのjqmathライブラリから呼び出す機能です予想通り

とHTMLコードがある(jQueryとjqmathライブラリを含む)

  <html><head> 

      <link rel='stylesheet' href='mathscribe/jqmath-0.4.3.css'> 
      <link rel='stylesheet' href='mathscribe/mystyle.css'> 

      <meta name="viewport" content="width=device-width, user-  
      scalable=no" /> 
      <script src='mathscribe/jquery-1.4.3.min.js'></script> 
      <script src='mathscribe/jqmath-etc-0.4.3.min.js'></script> 



      <script src='mathscribe/javascript1.js'></script>" 
      <script src='mathscribe/jquery.js'></script>" 
      </head> 
      <body id='mybody'> 
      <p id='myp'></p> 
      </body> 
      </html> 

と番目XMLレイアウト

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:weightSum="1"> 


<WebView 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:id="@+id/webView" 

    android:focusableInTouchMode="true" 
    android:layout_weight="0.5" /> 

    <Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="insert" 
    android:id="@+id/insertnewtext" 
    android:onClick="clickme" 
    android:layout_gravity="center_horizontal" /> 

    <LinearLayout/> 

され、これはフォーマット(2次元)数式にelement内部

 WebView webView= (WebView) getActivity().findViewById(R.id.webView); 
    WebSettings mWebSettings = webView.getSettings(); 
    mWebSettings.setJavaScriptEnabled(true); 

答えて

2

M.parseMath(element)$$...$$テキストノードを変換するのWebViewを設定するためのJavaコードでありますその幅が変わります。 element.scrollWidthはあなたに正しい最後の要素の幅を与えることができるようにので、後window.scrollBy(element.scrollWidth,0);M.parseMath()コールではなく、前にやってみてください。私は、ブラウザでまったく同じコードを試してみましたが、完璧に動作として、私は問題がアンドロイド.I内のWebViewに関連していると思います返信用

+0

THXはそれにそこにバグか何かだと思います。途中ですばらしい図書館 – has19

関連する問題