相关疑难解决方法(0)

IE 8:Object不支持属性或方法'getElementsByClassName'

我正在使用diapo滑块,除了Internet Explorer 8之外,它似乎适用于所有其他浏览器.

在调试模式下运行ie8后,我收到以下错误:

SCRIPT438:Object不支持属性或方法'getElementsByClassName'prototype.js,5988行5

return function(className, parentElement) {
    return $(parentElement || document.body).getElementsByClassName(className);
  };
Run Code Online (Sandbox Code Playgroud)

SCRIPT438:Object不支持属性或方法'fireEvent'prototype.js,第5736行第7行

if (document.createEvent)
      element.dispatchEvent(event);
    else
      element.fireEvent(event.eventType, event);

    return Event.extend(event);
Run Code Online (Sandbox Code Playgroud)

我在magento平台上运行这个滑块,看起来那个原型脚本有问题.它使用的原型版本是1.7,因此排除了脚本更新的可能修复.

注意:虽然,我在ie9中没有显示问题,但是我收到以下错误:

SCRIPT438:Object不支持属性或方法'dispatchEvent'prototype.js,第5734行character 7

if (document.createEvent)
      element.dispatchEvent(event);
    else
      element.fireEvent(event.eventType, event);

    return Event.extend(event);
Run Code Online (Sandbox Code Playgroud)

这些是diapo滑块工作所需的脚本,在头文件中加载了脚本标记.我不确定,但是这些脚本中的一些可能与现有脚本冲突:

<script type='text/javascript' src='http://www.pixedelic.com/plugins/diapo/scripts/jquery.min.js'></script>
<script type='text/javascript' src='http://www.pixedelic.com/plugins/diapo/jquery.mobile-1.0rc2.customized.min.js'></script>
<script type='text/javascript' src='http://www.pixedelic.com/plugins/diapo/jquery.easing.1.3.js'></script>
<script type='text/javascript' src='http://www.pixedelic.com/plugins/diapo/jquery.hoverIntent.minified.js'></script>
<script type='text/javascript' src='http://www.pixedelic.com/plugins/diapo/scripts/diapo.js'></script>
Run Code Online (Sandbox Code Playgroud)

error-handling internet-explorer slider prototypejs

10
推荐指数
1
解决办法
3万
查看次数

Javascript IE和getElementsByClassName问题

首先,我正在学习JS,在我知道所有需要之前不会使用库.

http://www.tombarrasso.com/search/

有了这个说,为什么我的代码不能在<IE 7,Firefox <3等中工作?Safari 4非常完美,Firefox 3.5非常棒等等.我正在使用Robert Nyman的函数getElementsByClassName.

它在OS X上的IE 6中没有产生任何错误(通过Wine).Ajax请求很好,但是应该有一个id ="one"和class ="scroller"的初始div,但是没有.我对此感到非常沮丧.

谢谢,

  • 汤姆

javascript ajax internet-explorer

5
推荐指数
2
解决办法
1万
查看次数

如何选择父元素的第一个子元素?

我正在尝试使用纯 JavaScript 选择父元素的第一个子元素并更改其中的一些 CSS 属性。我试过.firstChild.childNodes[1]方法,但他们不这样做的工作。这可以用 CSSnth-child()选择器来完成,但我想用 JavaScript 来完成,以获得更好的浏览器支持。

例子:

HTML

    <div class="daddy">
       <div class="child">I want select this child and change it's css property.</div>
       <div class="child"></div>
       <div class="child"></div>
       <div class="child"></div>
    </div>
Run Code Online (Sandbox Code Playgroud)

我试过的:

JavaScript

    var x = document.getElementsByClassName('daddy');
    var d = x.firstChild; // and the x.childNodes[1]
    d.style.width="5em";
Run Code Online (Sandbox Code Playgroud)

什么工作:

CSS

   daddy:nth-child(1) { width: 5em; }
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

html javascript css

3
推荐指数
1
解决办法
1734
查看次数

getElementsByClassName Iexplorer兼容性

下午好,

让我首先说,我看到很多关于这个主题的帖子,并且包含/尝试了很多它们来解决我的问题.

现在问题是,我试图找出可用的几个浏览器的兼容性模式.我和Iexplorer挣扎,差不多每个版本..

我尝试的所有东西,在几种脚本上都不能在浏览器中工作,而在其他所有脚本中都可以.

我遇到的主要问题是getElemtsByClassName.例如:

var tag = window.document.getElementsByClassName("kat");
Run Code Online (Sandbox Code Playgroud)

它始终返回:Object不支持属性或方法'getElementsByClassName'.

我已经在网上看到了这个问题,也在这里,是否有人绕过这个问题有一些信息?尝试了一些东西,喜欢把它改成:

var tag = window.getElementsByClassName("kat");
Run Code Online (Sandbox Code Playgroud)

要么

var tag = getElementsByClassName("kat");
Run Code Online (Sandbox Code Playgroud)

但是,我猜我在错误的方向思考..有人可以给我一个提示或链接阅读如何解决这样的事情?

这是我通常使用的标题,我读过这应该解决很多问题:

<!doctype html>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
Run Code Online (Sandbox Code Playgroud)

作为我的一个例子:

function insDiv() {
    var tag = window.document.getElementsByClassName("kat"), total = 0;
        for (var i in tag)
    {
    total += tag[i].checked && !isNaN(Number(tag[i].value)) ? Number(tag[i].value) : 0;
    }
    window.document.getElementById("insDiv").innerHTML = 'Kat: ' + total.toFixed(2);
}
Run Code Online (Sandbox Code Playgroud)

它在chrome/firefox /等中完美运行.只是不在Iexplorer.

javascript

1
推荐指数
1
解决办法
494
查看次数

getElementsByClassName&IE

我试图获得一些类别为"特殊"的元素.我在网上找到了以下脚本,但它只返回一个空数组.

有谁看到什么是错的?

getElementsByClassName = function (node, classname){
 var a = [],
    re = new RegExp('\b' + classname + '\b'),
    els = node.getElementsByTagName("*"),
    l = els.length,
    i;

 for (i = 0; i < l; i += 1) {
  if (re.test(els[i].className)) {
      a.push(els[i]);
  }
 }
 console.log(a)
 return a;
}

var wrap = document.getElementById('wrap');
getElementsByClassName(wrap, 'special')
Run Code Online (Sandbox Code Playgroud)

wrap包含22 <p class="special">Lorem</p>个子节点,最后一个是,并且在firebug中我一直向下找到具有classname的节点,但随后它跳转a.push.我迷路了!

编辑: 好的,所以它现在可以工作,虽然知道为什么console.log(a)返回一个空数组仍然会很有趣

javascript regex

0
推荐指数
1
解决办法
2132
查看次数