[英]Javascript android getting the wrong width
一旦按下按鈕之一,我就在android xml布局中有一些按鈕,我稱之為javascript函數,可將某些文本附加到web視圖中的'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);
M.parseMath(element)
轉換$$...$$
內的文本節點element
到一個格式化(2維)的數學表達式,這會改變其寬度。 因此,嘗試執行window.scrollBy(element.scrollWidth,0);
在 M.parseMath()
調用之后 M.parseMath()
而不是在調用之后 M.parseMath()
,以便element.scrollWidth
可以為您提供正確的最終元素寬度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.