私はクロム拡張機能を作っています。そして、scrollTopにいくつか問題があります(これが「スクロールの高さを取得する」ことを願っています!)。
最初: 構造: マニフェスト、HTML ページ、JavaScript、および画像があります。
2番目: 狙います。一番上に移動するよりも一番下までスクロールして、再起動して一番下までスクロールしようとしています..ループ。マニフェストでは、私はこれを持っています:
{
"background": {
"page": "scroll.html"
},
"browser_action": {
"default_icon": "icon.png",
"default_title": ""
},
"content_scripts": [ {
"js": [ "scroll.js" ],
"matches": [ "http://*/*", "https://*/*" ]
} ],
"description": "Auto Scroll. UpDownUp!",
"icons": {
"128": "icon.png",
"48": "icon.png"
},
"manifest_version": 2,
"name": "Auto Scroll, UpDownUp",
"permissions": [ "tabs", "http://*/*", "https://*/*" ],
"version": "0.2.3"
}
ご覧のとおり、ポップアップ HTML はありません。
私のhtmlページで私はこれを持っています:
<html>
<head>
<title>Auto Scroll</title>
</head>
<body >
<script src="scroll.js"></script>
</body>
</html>
私の scroll.js には、スクロールを開始したり、スクロールを高速化するための関数がいくつかあります。しかし、そのすべてのコード (164 行) を引用する必要はありません。
私は単にたくさんのゴミを持っていますが、最後にはこの単純なことだけを行います:
chrome.tabs.update(id, {'url': 'javascript:document.body.scrollTop+=1;'});
私の拡張機能は「機能します」。しかし、私はやりたいことをすべてやったわけではありません:
この拡張機能はダウンするだけです (ダウンします!!)。ページの一番下にいるときに、拡張機能が実行されるようにしたい:
chrome.tabs.update(id, {'url': 'javascript:document.body.scrollTop=0;'});
そして私は考えました:
1)スクロールの最大高さを取得し、スクロールトップで確認し、同じ場合はそのコードを使用します。そうする場合、これらの値が常に(!!)等しいかのように、拡張機能は常に(少し下にスクロールした後)上に表示されます。
if(document.body.scollTop==document.body.Height)
{
chrome.tabs.update(id, {'url': 'javascript:document.body.scrollTop=0;'});
}
これは最初の試行の結果です...しかし、うまくいきません。
2) var y=document.body.scrollTop --> scroll --> z=document.body.scrollTop. y==z の場合、私は下にいて、上に移動します...これは機能しません。y と z は常に等しい!!!
使用するたびにアラート(値)を使用しました
chrome.tabs.update(id, {'url': 'javascript:document.body.scrollTop+=1;'});
として設定され
alert(document.body.scollTop);
とポップアップが「0」で表示されます。いつも...ポップアップを閉じて、拡張機能をもう少し下にスクロールすると、ポップアップが表示され、再び0になります!
わかりました...私は私のせいです!?
私は考えを持っています:私のjavascriptはバックグラウンドページによってロードされ、javascriptはブラウザのページに作用します.scrollTopコマンドはバックグラウンドページの高さを与えてくれます. 「アクティブな」ページの最後で停止して「トップに移動」機能を実行する方法を見つけるのを手伝ってくれませんか!?
編集:
何か見つけた、これ使ったら
chrome.tabs.getSelected(null, function(tab) {
alert(tab.url);
})
ウィンドウが表示され、acqual タブの URL が表示されます。これを見ると、高さがタブのプロパティであることがわかります。
chrome.tabs.getSelected(null, function(tab) {
alert(tab.height);
})
しかし、ウィンドウがポップアップして「未定義」と表示されます....実際のタブスクロール位置を取得するために何をしなければならないか本当にわかりません。