新しいタブを作成してそれをいくつかのサイトに移動してフォーカスを合わせるようにして、<input>
にフォーカスを当てようとしています。クロム拡張子:新しいタブを作成し、ページにフォーカスを合わせる
私はこの質問をチェックしますが、私の問題を解決するカント: How to steal focus from the omnibox in a Chrome extension on the new tab page?
ここでは、私がGoogleに新しいタブを開こうとすると、Googleの検索バーに注力しようとしているサンプルコードです。
これは、指定したWebページ上でクリックをキャッチし、<div>
を指定して、私のbackground.js
manifest.json
{
"manifest_version": 2,
"name": "E-Yaygın Kursiyer Aktarımı",
"description": "E-Yaygın Kursiyer Aktarımını Kolaylaştıran Yazılım",
"version": "1.0",
"permissions": ["tabs", "<all_urls>"],
"background": {
"scripts": ["background.js"]
},
"content_scripts": [{
"matches": [
"http://*/*",
"https://*/*"
],
"js": ["jquery.js","content_script.js"]
}],
"icons": {
"16": "images/icons/16.png",
"19": "images/icons/19.png",
"38": "images/icons/38.png",
"64": "images/icons/64.png",
"128": "images/icons/128.png"
}
}
content_script.js
$("#kybs_eklenti_edin_btn").hide();
$(document).ready(function (e) {
var host = $(location).attr('hostname');
var url = $(location).attr('pathname');
var search = $(location).attr('search');
console.log(url,"|",host,"|",search);
if (host.indexOf("kybs.com.tr")!=-1){
if (url == "/yoneticiv2/kursiyerlistesi"){
$("#tn_logo_holder").click(function(){
chrome.runtime.sendMessage({mesaj: "init_program"}, function(response) {
console.log(response);
});
});
}
}
});
background.js
content_script.js
試みであります
var openedTab = 0;
var isTabOpen = false;
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
console.log(sender.tab ?
"from a content script:" + sender.tab.url :
"from the extension");
if (request.mesaj == "init_program"){
if (!isTabOpen){
chrome.tabs.create({selected: true},function(tab){
isTabOpen= true;
openedTab = tab.id;
tabCreated();
});
}else {
chrome.tabs.get(openedTab, function(tab) {
if (chrome.runtime.lastError) {
chrome.tabs.create({selected: true},function(tab){
isTabOpen= true;
openedTab = tab.id;
tabCreated();
});
}else {
tabCreated();
}
});
}
sendResponse("check");
}
});
function tabCreated(){
chrome.tabs.update(openedTab,{url:"https://google.com.tr"});
chrome.tabs.executeScript(openedTab, {file: "jquery.js"},function(tab){
if (chrome.runtime.lastError) {
console.log(chrome.runtime.lastError.message);
chrome.tabs.executeScript(openedTab, {file: "jquery.js"},function(tab){
chrome.tabs.executeScript(openedTab, {file: "inject.js"});
});
}else {
chrome.tabs.executeScript(openedTab, {file: "inject.js"});
}
});
}
inject.js
$(document).ready(function(){
console.log("buradayız");
var kursNoInput = document.getElementById("lst-ib");
kursNoInput.value="840337";
kursNoInput.focus();
});
ともjQueryライブラリが含まれています。
私はJQueryでjavascriptを注入しようとしていますが、それはmetterです。すべて正常に動作しますが、アドレスバーからウェブページにフォーカスを移動できません。
ロードしようとしているページが新しく作成されたページをクリックすると2番目のことfocus()
は本当にうまく動作します。
私はGoogleリソースを検索しようとしますが、解決策を見つけることはできません。ページに注目する方法はありますか。
トピックになる質問を編集してください:**完全な** [mcve]を含めると*問題が重複します*。 ** manifest.json **、背景/コンテンツ/ポップアップスクリプト/ HTMLの一部を含む。デバッグの助けを求める質問(「**なぜこのコードは動作しないのですか?**」)には、以下が含まれていなければなりません:►必要な動作、►特定の問題またはエラー*、および►問題を再現するのに必要な最短コード自体**。明確な問題文がない質問は、他の読者にとって有用ではありません。参照してください: "**どのように[mcve] **を作成するか"、[ここで私はどんな話題を聞くことができますか?](http://stackoverflow.com/help/on-topic)、[ask] – Makyen
エクステンションをロードして実行するときに、[*拡張機能のさまざまな適切なコンソール](http://stackoverflow.com/a/38920982/3773011)に*正確に*表示されているものはありますか? – Makyen
@wOxxOm私たちはそれについて何ができるのですか?なにか提案を? – Ahmet