我有一个Chrome扩展程序,可以将iframe添加到特定网址。
我创建了一个快捷键,将焦点移动到iFrame中的输入框。
内容脚本向背景发送消息,该消息向iframe发送消息。
效果很好 - 一次。
我已经阅读了一些关于焦点的旧帖子()只在Chrome上工作一次......我无法相信这是真的。我认为这是由于某种事件加倍或某种原因......
有什么想法吗?
这是iframe JS中的消息接收器。同样,这总是接收消息以将焦点放在输入上。第一次通话后它就不会这样做。刷新页面会重置内容,而消息传递只能工作一次。
谢谢!
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.method === "focusToolbar"){
console.log('Receiving message from background to focus toolbar in aSearch.js...');
// $('#searchLibraryTB').on("focus", function(){
// console.log('search already had focus...');
// // $('#searchLibraryTB').val("this sux");
// $('#searchLibraryTB').off( "focus" );
// // $('#searchLibraryTB').focus();
// });
$('#searchLibraryTB').focus();
}
});
答案 0 :(得分:0)
有时在StackOverflow中写出你的问题可以帮助你思考......
我在焦点之前添加了一个模糊事件...以确保该元素没有关注第二个和后续的消息传递......
这就是诀窍。
$('#searchLibraryTB').blur();
$('#searchLibraryTB').focus();