Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在w3c中使用javascript验证onselectstart_Javascript_Validation_W3c - Fatal编程技术网

在w3c中使用javascript验证onselectstart

在w3c中使用javascript验证onselectstart,javascript,validation,w3c,Javascript,Validation,W3c,我对javascript非常陌生,并且尝试验证一个页面到xhtml的转换。我使用onselectstart=“return false” 所以我知道我想创建一个javascript函数,将其作为id插入。我甚至发现了这个,他知道了怎么做 他正在给身体装上子弹并设置身份证。我可以在课堂上这样做而不设置特定的ID号吗?编辑-此修改后的答案将我以前的答案与CMS提供的答案合并在一起 此代码在IE 6/7/8中工作: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML

我对javascript非常陌生,并且尝试验证一个页面到xhtml的转换。我使用onselectstart=“return false”

所以我知道我想创建一个javascript函数,将其作为id插入。我甚至发现了这个,他知道了怎么做


他正在给身体装上子弹并设置身份证。我可以在课堂上这样做而不设置特定的ID号吗?

编辑-此修改后的答案将我以前的答案与CMS提供的答案合并在一起

此代码在IE 6/7/8中工作:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>test page</title>
    <script type="text/javascript" language="javascript">
        window.onload = function() {
            var elements = getElementsByClassName(document, 'noselect');
            for (var i = 0; i < elements.length; i++) {
                elements[i].attachEvent('onselectstart', rfalse);
            }
        }

        function rfalse() { return false; }

        function getElementsByClassName(node, classname) {
            if (node.getElementsByClassName) { // use native implementation if available
                return node.getElementsByClassName(classname);
            } else {
                return (function getElementsByClass(searchClass, node) {
                    if (node == null)
                        node = document;
                    var classElements = [],
                els = node.getElementsByTagName("*"),
                elsLen = els.length,
                pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)"), i, j;

                    for (i = 0, j = 0; i < elsLen; i++) {
                        if (pattern.test(els[i].className)) {
                            classElements[j] = els[i];
                            j++;
                        }
                    }
                    return classElements;
                })(classname, node);
            }
        }
    </script>
</head>
<body>
    <h2 class='noselect'>
        this text cannot be selected
    </h2>
    <h2>
        this text can be selected
    </h2>
    <h2 class='noselect'>
        this text cannot be selected
    </h2>
</body>
</html>

测试页
window.onload=函数(){
var elements=getElementsByClassName(文档'noselect');
对于(var i=0;i
您可以使用该方法,但它还不是标准的(它将是其中的一部分),您可以完全确定它不会在任何IE版本上工作,提供本机实现,但如果它不可用,可以对您查找的特定类进行循环检查

受实现的启发,我个人使用了以下功能:

function getElementsByClassName(node,classname) {
  if (node.getElementsByClassName) { // use native implementation if available
    return node.getElementsByClassName(classname);
  } else {
    return (function getElementsByClass(searchClass,node) {
        if ( node == null )
          node = document;
        var classElements = [],
            els = node.getElementsByTagName("*"),
            elsLen = els.length,
            pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)"), i, j;

        for (i = 0, j = 0; i < elsLen; i++) {
          if ( pattern.test(els[i].className) ) {
              classElements[j] = els[i];
              j++;
          }
        }
        return classElements;
    })(classname, node);
  }
}

虽然我确信这是由于用户错误造成的,但上述解决方案对我都不起作用。我们已经运行了Jquery,结果证明它们已经为此进行了设置。我们在head部分使用了这段代码,它非常有效

<script language="javascript" type="text/javascript">
$(document).ready(function() {
//alert($(".unselectable").length)
var returnFalse = function () { return false; },
els = $(".yourClassNameHere"),
n = els.length;
while (n--) {
els[n].onselectstart = returnFalse;
}
});
</script>

$(文档).ready(函数(){
//警报($(“.unselectable”).length)
var returnFalse=函数(){return false;},
els=$(“.yourClassNameHere”),
n=长度;
而(n--){
els[n].onselectstart=returnFalse;
}
});

这看起来又短又甜对不起我的noob问题…我是否将其添加到我的外部函数include文件中,然后每当我在a中使用“myclass”时,它都会链接到它?具体取决于浏览器等。。对您还应该查看CMS提供的答案中的函数(某些浏览器版本没有GetElementsByCassName函数)。您应该使用
元素[i]。onselectstart=…
,或者添加对非IE浏览器的支持。在这个特定实例中,我只需要IE支持,因为onselectstart=“return false”这纯粹是为了IE…也就是说,我仍然无法让它与上面的代码一起工作。你在处理什么样的元素?好的,太好了…再次为新手的问题感到抱歉。因此,我将把函数放在外部函数页中,但第二个变量在页面的头段中,还是在外部文件中进行?@乔尔:我将考虑只在第二个片段的外部文件,如果它将被重用,好的,很抱歉把它变成一个论坛:D.“yourClassname”很有意义…在第一部分,我明白了(node,classname)和(classname),我应该用我的类名替换它吗?如果是,什么是“节点”?@Joel,不,你不必修改我发布的函数
classname
只是一个函数参数,你只需要在第二个代码段中将
'yourClassName'
更改为你的真实类名……该死……我做错了什么……好的。因此,我在external.js中将上面的代码“yourClassName”更改为“unselectable”,然后在我的页面中,例如,我有这样一个代码:echo“欢迎看到我遗漏了什么?哈哈,只要我能找到工作,我就会:-为什么你没有告诉我们你在使用JQuery?因为正如我在第一篇文章中所说的,我对这一点还不熟悉,我不知道告诉你什么是重要的,也不重要。祝您今天过得愉快。
<script language="javascript" type="text/javascript">
$(document).ready(function() {
//alert($(".unselectable").length)
var returnFalse = function () { return false; },
els = $(".yourClassNameHere"),
n = els.length;
while (n--) {
els[n].onselectstart = returnFalse;
}
});
</script>