Ich habe einige Schaltflächen in meinem Android-XML-Layout, sobald ich einen der Knöpfe, die ich eine Javascript-Funktion aufgerufen, um etwas Text an ein 'p' html Element in einem Webview anfügen, aber einmal die Breite der p element wird breiter als die Bildschirmbreite von webview Ich habe den unten stehenden Code aufgerufen, um zum Ende des p-Elements zu scrollen.Javascript android bekommen die falsche Breite
window.scrollBy(document.getElementById("myp").scrollWidth,0)
aber manchmal Arbeit dieser nicht-Code korrekt, wie es, dass document.getElementById („myp“) scheint. ScrollWidth mir die falsche Breite wird immer und ich debuggen den Code von console.log mit der Breite zu überprüfen und scheint, dass es manchmal in der gleichen Breite bleibt und nicht in Bezug auf den neuen Text aktualisiert, den ich dem p-Element hinzufüge. Ich habe auch versucht, mit $ (Dokument). Width() und manchmal auch bekomme ich die falsche Breite.
das ist mein Javascript-Funktion in javascript1.js-Datei enthalten, die ich nennen:
function append(input){
var element=$('#myp')[0];
element.innerHTML="$$" + input + "$$";
window.scrollBy(element.scrollWidth,0);
M.parseMath(element) ;
}
die M.parseMath() ist eine Funktion, die ich von einer jqmath Bibliothek aufrufen mathematische Formeln für die Anzeige der gut arbeitet wie erwartet
und der HTML-Code ist (enthält eine jquery und jqmath Bibliothek)
<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>
und th das XML-Layout wird
<?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/>
und dies ist der Java-Code für die webview
WebView webView= (WebView) getActivity().findViewById(R.id.webView);
WebSettings mWebSettings = webView.getSettings();
mWebSettings.setJavaScriptEnabled(true);
thx für die Antwort ich denke, dass das Problem mit dem Webview in Android verwandt ist. Ich denke, es gibt einen Fehler oder etwas darin, wie ich den exakt gleichen Code in einem Browser versuchte und funktioniert perfekt. tolle Bibliothek übrigens – has19