Chrome扩展程序中弹出窗口中的Tab键无法使用

9

我创建了一个 Chrome 扩展程序,其中有一个弹出窗口,其中包含以下 HTML 标记:

<html>
<head>
<style>
body {
font-family: 'Open Sans',arial,sans-serif;
background-color: #E5E5E5;
font-size: 13px;
text-shadow: 0px 1px rgba(255, 255, 255, 0.5);
}
</style>
</head>
<script type="text/javascript">function sendRequest(s,r){
chrome.tabs.getSelected(null, function(tab) {
  chrome.tabs.sendRequest(tab.id, {search:s , replace:r}, function(response) {
    console.log(response.farewell);
  });
});
};
</script>
<body>

<label for="search">Search for</label><input name="search" id="search"></input>
<label for="replace">Replace with</label><input name="replace" id="replace"></input>
<button onclick="var s=document.getElementById('search').value;var r=document.getElementById('replace').value;sendRequest(s,r);">Go</button>
</body>
</html>

当我打开弹出窗口并选择第一个输入字段,然后按tab键时,输入字段将失去焦点,但第二个字段不会获得焦点。
然后,如果我再次选择第一个字段并再次按tab键,第二个字段将获得焦点。再次按下使按钮获得焦点,再按三次使第一个字段再次获得焦点。
有人知道为什么第一次按tab键不起作用吗?

很遗憾,我无法回答你的问题(这真的很奇怪,我想知道发生了什么?),但以下是关于选项卡的一些指针。如果您关心选项卡内容,应该使用tabindex,您应该在页面加载时使某些内容聚焦,并且您应该将某些不可见的内容作为最后一个tabindex放入其中,以将焦点转移到第一个元素或进入浏览器内容。以下是添加信息后页面的示例..http://pastebin.com/2izkBt7g(适用于页面,而非弹出窗口?)此外,在发布Chrome问题时,最好说明您正在测试的版本。 - PAEz
嗨Wladimir。非常感谢你的提示。我已经在我的弹出窗口中实现了这个功能,我正在使用Chrome 17.0.963.46 beta-m。不幸的是,在第一次按Tab键后,光标仍然会消失。我可以成功地在加载弹出窗口时选择第二个tabindex,但再次按下第二个键会导致光标丢失。你认为这可能只是Chrome的一个bug吗? - forgetso
它必须与Chrome的最新版本相关,因为它在16.0.912.77 m版本中也可以正常工作。 - forgetso
1
它必须与Chrome引入的某些内容相关。因为我确定我的扩展在最新版本之前可以使用Tab键。截至18 beta-m,它仍然无法正常工作,所以不确定该怎么办... - Ryan
显示剩余2条评论
2个回答

6

1
Bug又回来了,还没有被重新修复:https://code.google.com/p/chromium/issues/detail?id=122352 - Loren

0

这似乎在Chrome版本32.0.1700.76 m中正常工作。

我从未看到它能够正确地为我的TxtPad扩展程序工作,但今天在Chrome更新后它可以了。

希望现在它能一直保持这样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接