1

ボタンの1つを押すと、Android xmlレイアウトにいくつかのボタンがあり、javascript関数を呼び出してWebビューの「p」html要素にテキストを追加しますが、p要素の幅が画面の幅よりも広くなると以下のコードを呼び出して、p 要素の最後までスクロールしました。

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

しかし、document.getElementById("myp").scrollWidth が間違った幅を取得しているように見えるため、このコードが正しく機能しない場合があり、console.log を使用して幅を確認してコードをデバッグします。 p要素に追加している新しいテキストに関して、同じ幅で立ち往生し、更新されていません。

$(document).width() も使用してみましたが、幅が間違っている場合もあります。

これは、私が呼び出す javascript1.js ファイルに含まれる私の JavaScript 関数です。

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/>

これは、webview を設定するための Java コードです。

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

1 に答える 1

2

M.parseMath(element)$$...$$内部のテキスト ノードelementをフォーマットされた (2 次元の) 数式に変換し、幅を変更します。そのため、正しい最終的な要素の幅を得ることができるように、呼び出しの前ではなく呼び出しのwindow.scrollBy(element.scrollWidth,0); に実行してみてください。M.parseMath()element.scrollWidth

于 2016-04-13T19:15:01.600 に答える