在Jquery完成后运行脚本

时间:2012-10-31 10:45:25

标签: javascript jquery jquery-ui

首先让我们来解释黑客。

通过我的网页使用Total Validator Tool时出现以下错误:

  

[WCAG v1 6.3(A),US-508-l]考虑在每个标签后提供替代方案

由于我的网页很大程度上依赖于javascript我无法提供真正的替代方案,因此我想在每个脚本出现后添加一个空的noscript标记。 (我知道黑客很傻,让我们用它作为示例材料,我的帖子的重点是最后的问题)

我尝试了以下方法:

$(document).ready(function(){
   $("script").each(function() {
      $(this).after("<noscript></noscript>");
   }); 
});

问题引发因为我的页面上有一个jQueryUI DatePicker组件。在DOM准备好之后jQuery添加了一个脚本部分,所以我的hack因为想念这部分而失败。

所以问题是:如何处理文档准备好后要执行的jQuery库?在jQuery完成工作后如何运行我的代码?

3 个答案:

答案 0 :(得分:1)

您获得的辅助功能工具和警告信息是指南。之后放置空的noscript标签不会改善可访问性,只会损害您的可信度。

您希望通过测试的原因是我猜您可以拥有一个完全可访问的网站。我认为最好有一个辅助功能声明,解释您为使网站可访问所做的所有选择,以及您的网站未通过测试的原因。这将激励我对您的可访问性更有信心,而不是让网站通过自动化测试。

简而言之,不要试图欺骗测试和读者,而是遵循指导原则,并解释你是如何做到的。

答案 1 :(得分:1)

document.addEventListened('DOMNodeInserted', function(e) {
    if (e.srcElement instanceof HTMLScriptElement) {
        // a new <script> tag was inserted -> e.srcElement
    }
});

答案 2 :(得分:0)

  1. 如果您通过JavaScript添加<noscript>标记毫无意义,因为只有在浏览器中禁用脚本时才会解析<noscript>,但如果禁用了脚本,则<noscript> 1}}根本不会写出

  2. 您是否阅读过WCAG,而不是盲目地尝试修复不属于错误的错误?如果您无法提供无脚本的替代方法,则您将无法访问可访问的文档。第一个问题,你应该问自己:我真的需要合规吗?如果您这样做,请设置一个工作到100%的网站,而无需激活JavaScript或任何插件。然后向该站点添加任何脚本增强功能。该方法不需要<noscript>标记,并且可以让禁用JavaScript的用户使用您的网站。