我的android xml布局中有一些按钮,一旦我按下其中一个按钮,我调用了一个javascript函数,将一些文本附加到webview中的'p'html元素,但是一旦p元素的宽度变得宽于webview的屏幕宽度我调用下面的代码滚动到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);
答案 0 :(得分:2)
M.parseMath(element)
将$$...$$
内的element
文本节点转换为格式化的(2维)数学表达式,该表达式会更改其宽度。因此,在window.scrollBy(element.scrollWidth,0);
调用M.parseMath() ,而不是之前,以便element.scrollWidth
可以为您提供正确的最终元素宽度。