Element.getElementsByClassName() IE And Opera Bugs
Aug 20, 2005
I'm trying to implement getElementsByClass() for the document object
and the Element interface, that supposed to work for HTML, XHTML, SVG
and MathML class attributes (including mixed namespace documents) and I
have it working perfectly in Gecko (tested in Firefox 1.0.6 and Deer
Park Alpha 2). I'm just having some serious problems with IE and a bug
in Opera.
The test [1] is supposed to get a NodeList (an Array() with an item()
method added) of elements by class name and then output an alert()
containing the tagNames of the selected elements.
After a fair bit of testing, I believe the problem is occuring with the
way I'm trying to attach the getElementsByClassName() and hasClassName()
functions to elements in IE using an HTC. It seems to be breaking at
the point within document.getElementsByClassName() where I call
element.hasClassName (line 34 of the script [2]) but my understanding of
this workaround using HTCs [3]] that I'm trying to use is very limited
and I don't understand why it's breaking. Code:
There are two getElementById bugs up for discussion:
1. getElementById is case-insensitive but it should be case-sensitive.
2. getElementById searches NAME attributes as well as ID attributes but it should not.
My tests show that IE 6 and down have both bugs, Opera 9.02 has bug #2, Opera 7.54 has neither bug, and FireFox 1.5.0.7 has neither bug.
My proposed solution relies on something I noticed while testing in IE: "document.all" is case-sensitive altho it too searches NAME as well as ID attributes.
I would really appreciate if some different people could help me verify these findings in different browsers and on different platforms.
There has been another proposed solution - but I really don't like removing the ID attribute.
We have a js heavy web-ui. In the production environment it runs minimized, composed from 10 or so js files. When we have a js-error of some sort (we have about 100 users and growing) we write the window.onerror information to a database. Only, it is not very helpful since linenumbers mean nothing in the intelligeble code.
Is there a minifier that tags the result that would allow translation of linenumbers? Is there some other method people use to solve this problem?
I got this Resize Image BBCode here. It is used for a Forum called Zetaboards, where I can just put it in my Admin Control Panel to make it work for my whole forum.What does the code do?With this BBCode, members are able to insert images to their posts and also are able to resize the images.[code]Can someone please help to make the code work correctly so the images are resized properly on Firefix, IE, and Google Chrome?
go to the "Jupiter" graphic on the top left, you'll see that I have a little tab at the bottom of that labeled "Physical". When you click on it, it slides out of the way, exposing a tab labeled "Orbital" and when you click on that one it slides out of the way and exposes a third tab labeled "Atmosphere". These all drive the little spec sheets above- though that's not where the problem lies.The problem is when instead of clicking on the exposed label, you click on the little sliver of the one right behind it, causing the other two tabs to do unintended things. Here's the code:
I can't get GetElementsByClassName to work.Clicking on the first button moves data to a second function that when clicked moves the data to the input field.This codes works when I change getElementsByName('pics')to getElementById('upload').But I need it to work with getElementsByName().
Code: <!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>[code]....
This does not work. Not sure what I am missing. Basically I want to toggle the none/block value in the style on the span class below based on the browser detection script.
I can't get getElementsByClassName to work in Internet Explorer.What I want to do is open external links in a new window without using the target attribute (because the site is XHTML Strict) nor inline Javascript.I've given the external links the class name "external":
im on a really tight deadline with this and have been strugglign all day. (i know nothing about JS!) here's my code:
<script language="Javascript"> var allHTMLTags = new Array(); function fadeIn(SRC) { var allHTMLTags=document.getElementsByTagName("*"); for (i=0; i<allHTMLTags.length; i++) { if (allHTMLTags[i].className.indexOf(",") !== -1)
[Code]...
the end result needs to go through and find all divs with a class CONTAINING the term specified in the <li> then give them an opacity of 1, then on mouseOut return the opacity to 0.5
i have a menu generated by a list with nested lists. i want the parent link to stay highlighted when the mouse hovers over the sub menus. because those sub menus are also generated by jquery (qtip), CSS alone won't do it (triedul.topnav li:hover a {background-color: #F00;}).is there a way to do this using jquery?
<script language="JavaScript1.2" style="text/javascript"> <!-- function checkLocation() { if (navigator.userAgent.indexOf("Opera")!=-1) type="OP" else if (document.all) type="IE" // ie 4 & up else type="XX" if (type=="IE") moveNav.style.pixelTop=document.documentElement.sc rollTop setTimeout("checkLocation()",5); } //--> </script>
This is suppose to keep the Nav bar at the top of an IE browser. (Yes, it wobbles a little bit, but what can I do?)
With most other browsers, the Nav Bar stays nice and stationary at the top, thanks to a nice CSS solution. However, with Opera (at least Opera 7.54 that I have) the nav bar wobbles a bit like I would expect it to in IE, but still it gets hidden under most scrolling situations. What's the cure for Opera?
I have strange situation, in my webb apps i use a lot of AJAX. in my developer computer i use opera and naked apllication (it's using Python Application Server cherrypy www.cherrypy.org), in production I covered my application be Apache server which serves static files. The problem is that AJAX working in Opera but only on production server (cherrypy behind Apache), on developer machine it's not working. Others browser (IE, FF 1.5.0.1) working without any problem. Does anyone know solution for this? Or is is a way to lookup what is happen under Opera engine? any plugin or something what shows AJAX status call?
I really want to make my scripts work in Opera. I really, really do. But it seems like an uphill struggle. First of all, I can't get ANY kind of debug output. No error messages in the "javascript console" - but then, I have never seen ANYTHING in Opera's javascript console. Is there some kind of voodoo I need to perform in order to make that work?
Then, when Opera doesn't like something about a script (even if it works fine in Spidermonkey), it will sometimes refuse to load it entirely, which means I can't even do alert() based debugging. What the hell?
Can anyone give me some insight as to how they go about making their scripts run properly in Opera? I make a point of sticking to ECMAScript standards (and then making per-browser exceptions where needed *COUGH IE*), but Opera just doesn't want to cooperate.
This is in Opera 8, by the way. I haven't upgraded yet, since I don't use it, and I think more people still use 8 than 9 so that's what I want to target.
Has any user of Opera 7.11 noticed that it does not reload all files when the reload button is clicked? I can click on my html file to cause Opera to load and start and it's OK. But if I then correct an error in a *.js file and click reload I often get a javascript console with the same error that I just corrected and line numbers that refer to the old file. This has got to be something that I am doing wrong, but I can't see it.
I have included a file below that tests onKeyPress in Opera 7.11. I am getting peculiar behavior. When the file is first loaded, pressing the keypad + causes the textarea to get physically larger on the screen, and pressing the keypad - causes the textarea to get physically smaller. I click on the scrollbar then this behaviour stops and subsequent keystrokes are displayed appropriately. Is this some kind of bug in Opera 7.11? Code:
I'm in the process of migrating a script to use DOM core methods but I've hit a roadblock in the aforementioned browser. The following code snippet illustrates what I'm basically trying to do, it really is incredibly basic!
var newimg = document.createElement('img'); newimg.setAttribute('id', 'placeholder'); newimg.setAttribute('src', 'images/large/courtyard.jpg');
I'm then positioning the element on the page using appendChild(). Everything works perfectly on Firefox 1, IE5+, Opera 8, Konqueror 3.3.1 (Linux) but not in Opera 7.54. I suspect the element is being created as associated styling on #placeholder is being applied (just some padding and borders) but the image itself is not being displayed. I assume therefore that the problems lies with setAttribute()?
This seems like the sort of problem that others would have encountered, but I haven't been able to find mention of it anywhere.
document.getElementById("p").setAttribute("disabled","true"); to disable a button after user clicks it (this is to make sure user clicks it only once). It is needed to prevent multiple clicks on a button since each click calls a servlet.
This code works in IE but does not in FF and Opera.
google.maps.event.addListener(markerName, 'click', function mojafunkcia() { document.getElementById("neco").getElementsByTagName("a")[0].click(); })
I assume that html element cannot access that javascript function because it ist nested within other function (please see source code on turie.eu), but I'm not very skilled with javascript, so I'm not sure.
the code above gets called every time a new page is loaded inside the iframe (ifrmDisplay) what its doing is resizing the iframe so it can have the same size as the page inside it, so i can eliminate the need for vertical scroller for the iframe, i assumed that it works on opera and IE at the same time, when i tried it out, it worked on IE but not on opera. after lot of time in researching how i can get workaround this issue with opera, that is the best possible solution i have and yet it doesnt work. so i gave up and asking you if you can help me out here , coz this is jst driving me crazy!
the problem is im not a javascript expert, to be honest i jst started doing javascripts about two days ago, that is why im in need for help
by the way, here is inner html for the iframe if its any use