Javascript Chrome-用于扩展的选项屏幕';不要让我专注于下一个领域

Javascript Chrome-用于扩展的选项屏幕';不要让我专注于下一个领域,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我正在开发一个带有选项屏幕的chrome扩展。它包含一个10x5的网格表单输入,我试图让字段在用户输入数据时自动聚焦到下一个字段。我遵循了这个问题上列出的代码: 但是,当我加载扩展时,当我单击扩展下的选项时,“焦点到下一个”字段不起作用。当我自己加载options.html文件时,焦点函数就可以正常工作了。在Chrome的选项屏幕中,focus函数不起作用,但当我自己加载html文件时,它就起作用了 Chrome选项屏幕是否有什么特别之处,使焦点无法工作 代码示例: options.html

我正在开发一个带有选项屏幕的chrome扩展。它包含一个10x5的网格表单输入,我试图让字段在用户输入数据时自动聚焦到下一个字段。我遵循了这个问题上列出的代码:

但是,当我加载扩展时,当我单击扩展下的选项时,“焦点到下一个”字段不起作用。当我自己加载options.html文件时,焦点函数就可以正常工作了。在Chrome的选项屏幕中,focus函数不起作用,但当我自己加载html文件时,它就起作用了

Chrome选项屏幕是否有什么特别之处,使焦点无法工作

代码示例: options.html

<td><input type="text" size="1" maxlength="1" id="A1" onkeyup="moveOnMax(this,document.getElementById('B1'))" autofocus></td>
<td><input type="text" size="1" maxlength="1" id="B1" onkeyup="moveOnMax(this,document.getElementById('C1'))"></td>
<td><input type="text" size="1" maxlength="1" id="C1"></td>
<td><input type="text" size="1" maxlength="1" id="D1"></td>

脚本目前也采用html格式:

<script language="javascript" type="text/javascript"> 

   function moveOnMax(field, nextFieldID) { 
      if (field.value.length >= field.maxLength) { 
         nextFieldID.focus(); 
      } 
   } 

</script>

函数moveOnMax(字段,nextFieldDid){
如果(field.value.length>=field.maxLength){
nextfield.focus();
} 
} 

我认为您正在尝试执行
标记中的脚本。Google Chrome的内容安全策略不允许这样做

有关Chrome认为不安全的内容的更多信息


如果您不尝试使用脚本标记,请查看控制台,如果报告了一些错误,请告诉我们。

我认为您尝试在
标记中执行脚本。Google Chrome的内容安全策略不允许这样做

有关Chrome认为不安全的内容的更多信息


如果您不尝试使用脚本标记,请查看控制台,如果报告了一些错误,请告诉我们。

因此内容安全策略禁止我直接从html代码调用脚本。正如建议的那样,我将代码移动到一个单独的javascript文件中。正常情况下,这应该可以工作,但我忘记了在使用参数调用脚本时,它需要采用以下格式:

糟糕(我所拥有的):

好:

规则:当传递参数值时,使用“匿名函数”调用带有参数的指定函数


谢谢大家的输入。

因此内容安全策略禁止我直接从html代码调用脚本。正如建议的那样,我将代码移动到一个单独的javascript文件中。正常情况下,这应该可以工作,但我忘记了在使用参数调用脚本时,它需要采用以下格式:

糟糕(我所拥有的):

好:

规则:当传递参数值时,使用“匿名函数”调用带有参数的指定函数


谢谢大家的意见。

谢谢。看起来CSP确实在阻止执行。我将尝试通过事件处理程序,看看这是否有效。您只需将代码moove到一个separated.js文件,并通过带有src attributeThanks的脚本标记将其链接到HTML文件上。看起来CSP确实在阻止执行。我将尝试通过事件处理程序,看看这是否有效。您只需将代码moove到一个separated.js文件,并通过带有src属性的脚本标记将其链接到HTML文件上
document.getElementById('A1').addEventListener('keyup', moveOnMax(this, document.getElementById('B1')));
document.getElementById('A1').addEventListener('keyup', function() {
  moveOnMax(this, document.getElementById('B1')); 
});