私はSharePointでweページを開発していますが、Internet Explorer 11とMicrosoft Edgeでのみonclick関数がエラーをスローします。クロム、Firefox、OperaでOKです。「関数」はEdgeとExplorerでのみ定義されていません
<script type="text/javascript">
function BuildCategory(element)
{
for(let button of pathButtons)
{
button.style.borderBottom = "1px solid #999999";
button.style.boxShadow = "0.5px 1.5px 0.5px #AFAFAF";
button.style.color = "#888888";
button.style.backgroundColor = "transparent";
}
element.style.backgroundColor = "#FEFEFE";
element.style.color = "#111111";
element.style.borderBottom = "1px solid #709BE5";
element.style.boxShadow = "0.5px 1.5px 0.5px #709BE5";
careerArea = element.innerHTML;
BuildPath(careerPath, careerArea, careerRole);
}
function BuildRole(element)
{
for(let button of roleButtons)
{
button.style.color = "#888888";
button.style.borderBottomColor = "#000000";
}
element.style.color = "#111111";
element.style.borderBottomColor = "#709BE5";
careerRole = element.innerHTML;
careerRole = careerRole == 'Trainee' ? Trainee : careerRole == 'Proficient' ? Proficient : careerRole == 'Senior' ? Senior : careerRole;
BuildPath(careerPath, careerArea, careerRole);
}
</script>
<span class="PathTitle">
BlackBox Career Path
</span>
<div class="PathSelector">
<span class="PathButton Sixth" onclick="BuildCategory(this)">Testing Process</span>
<span class="PathButton Sixth" onclick="BuildCategory(this)">Tools</span>
<span class="PathButton Sixth" onclick="BuildCategory(this)">Certification</span>
<span class="PathButton Sixth" onclick="BuildCategory(this)">Consulting</span>
<span class="PathButton Sixth" onclick="BuildCategory(this)">QA/PI</span>
<span class="PathButton Sixth" onclick="BuildCategory(this)">PM</span>
<span class="PathButton Sixth" onclick="BuildCategory(this)">All Categories</span>
</div>
<div class="RoleSelector">
<span class="RoleButton Octet" onclick="BuildRole(this)">Trainee</span>
<span class="RoleButton Octet" onclick="BuildRole(this)">Junior</span>
<span class="RoleButton Octet" onclick="BuildRole(this)">Proficient</span>
<span class="RoleButton Octet" onclick="BuildRole(this)">Senior</span>
<span class="RoleButton Octet" onclick="BuildRole(this)">QA Lead</span>
<span class="RoleButton Octet" onclick="BuildRole(this)">Expert</span>
<span class="RoleButton Octet" onclick="BuildRole(this)">QA Manager</span>
<span class="RoleButton Octet" onclick="BuildRole(this)">QA Consultant</span>
<span class="RoleButton Octet" onclick="BuildRole(this)">All Roles</span>
</div>
<div class="CourseSelector" id="courseSelector">
</div>
Microsoft以外のブラウザでは、この関数は機能し、エラーは発生しません。
'RoleButton'をクリックしたときに 'PathButton'または 'BuildRole'が未定義の場合は 'BuildCategory'が未定義になります。
コンソール出力を調べるには、F12 devツールを使用してください。おそらく、インラインスクリプトをブロックしているコンテンツセキュリティポリシー(CSP)が存在する可能性があります。 [MSDN Dev Guide](https://docs.microsoft.com/en-us/microsoft-edge/dev-guide/security/content-security-policy#inline-script-and-onclick-handlers)を参照してください。 –
ちょうど解決した問題は、私がfor..of/inステートメントを使用していたことです。これはIEとEdge X_Xのいくつかのバージョンと互換性がありません。私は、なぜコンソールが ';' 'テストプロセス'に行方不明がありました。私はその機能にアラートを入れることにしました。私はその中のアラートが実行されていないことに気付きました。私は古典を(var ...)のために使用し、すべては問題ありません –