Changing Properties Added With The Prototype Keyword
May 2, 2007
I have some script like this:
// simplified to remove all the try/catches & stuff
function newXHR() {
request = new XMLHttpRequest();
XMLHttpRequest.prototype.requested = null;
return request;
}
then later:
function doRequest(url, callback) {
var req = newXHR();
req.requested = url;
// et cetera....
}
This works fine in Firefox, however the line 'req.requested = url' causes an error in IE7, (I haven't tested IE6 yet). The error is 'Object doesn't support this property or method'
So, this leads me to believe that either a) XMLHttpRequest.requested is not writable, or, b) XMLHttpRequest.requested was never created in the first place. I think it's the first option because I'm not getting an error in the newXHR() function.
I've been searching for some documentation on this but I can't seem to find anywhere if properties created with the prototype keyword are writeable in IE. Does anyone know what the problem is?
Now, when I click on the header row, I would like to hide a column, and when I click on an image, I'd like to restore it. Ideally, I would have a function like such:
I have a billion elements that all share the same class. I have another billion elements that all share another class. This cannot be changed. My objective is to use one element to trigger onclick a change in the others elements' css properties, that is each element is paired with another, producing a billion unique pairs. From hours of deciphering the cryptic documentation examples ive come up with the following, which doesnt work. Assume that im using "name=item#" in the element's tag to identify each pair.
One fundamental issue with this is that it will change the opacity of both elements in the pair were both elements to share a name,or it will only affect the element being clicked on if not, but i only want it to change the opacity of the element that isnt being clicked. Another issue is that there are instances where i may need to set a setTimeout on a css property, and ive not found any documentation on integrating javascript and jquery together within a function.So how do i get this function to accept input from one element and affect the css properties of the other? And what would a setTimeout look like if it were placed around the opacity property?
I am currently working on a tween script that I am hoping to make so it allows the user to choose and object than the property it tweens, whether it be height or opacity.so currently my problem is getting the function to accept dynamic property selction.for example, the following.
Code: function tween(object,property,to,time){ original = object+property;
how to add extra properties to html elements as I was storing data in html attributes. After looking at some others code including Raphael and this addEvent code. [URL] They seem to treat objects just like an array. obj[property] = value; This would have been extremely helpful to know previously as I have needed to be able to include variables in property names - but have resorted to making the whole thing a string and calling exec() on it.
According to ECMAScript, the root of the prototype chain is Object.Prototype. Each object has an internal property [[Prototype]] that could be another object or NULL.... However, it also says that every function has the Function prototype object: Function.Prototype, it confused me, because a function is an object, for a function object, what is its function prototype and object prototype..For example:
var x = function (n) {return n+1;};
what is the relationships of x, Object.Prototype and Function.Prototype
I am trying to get to the bottom of javascript object, prototypes etc. I have a fairly good grasp of it, but I get confused the closer I get to the base object.prototype. FIrst of all, I was under the impression that all objects descend directly from Object. But some objects (like Array) seem to inherit properties and methods from the function.prototype. So does this mean that the chain is like this:
object -- function -- array Second, I noticed (on the mozilla javascript reference site that object.prototype inherits properties and methods from function.prototype and vice versa!? How can this be? I must be missing something important about understanding the chain?
I am modifying the suckerfish dropdown code to use settimeout to have a slight pause before the menus disappear to make it more user friendly. I have hit a snag with the following statement:
out of the settimeout function, it works. (w/o the pause, obviously). With the settimeout function, I get "this.getElementByTagName is not a function" error.
I have tried putting this.getElementsByTagName("UL")[0] is a variable and then using that in the settimeout function, but then each li will only open the very last menu in the list. (ie all the menu items open the last sub menu) Code:
I've been searching google endlessly and I've come to the conclusion I'm not using the proper search keywords. I'm trying to create something similar to the banner/button combo you can find here:[URL]..
I assume these type of slide show buttons combos use java script and possibly php. If anyone knows the proper name for this type of slide show or can point me to some scripting
I was reading thegetting started with jquery. And got confused with use of this in these 2 code segments. $(document).ready(function() { $("#orderedlist").find("li").each(function(i) { $(this).append( " BAM! " + i ); }); });
$(document).ready(function() { // use this to reset several forms at once $("#reset").click(function() { $("form").each(function() { this.reset(); }); }); When do we need $(this) and this? And what is the difference between them?
Would like to check if there is anyway where i can use javascript to grab the keyword of .doc and .pdf file.
because when i right-click on the files, and click on properties. there will be a tab at the top (Summary for .doc and PDF for .pdf), and upon clickin there will the description, author and keywords. so im just wondering if there is any way to grab the value?
I could just give each image an ID and not use the 'this' keyword, but I haven't used it much so I'm curious about it. It's sending the image element to the function, so why can't I modify the src attribute with that information?
I'm creating a list with buttons that show and hide some of the list elements to create the effect of scrolling. I've built an scrollList object so I can apply this to any list. When you create the object and pass it the id of the <ul> and how many items of the list you want to be displayed. It will add the scroll down and scroll up links and add an Event.observe to them (I'm using the Prototype library).
This code creates the object
var main_news_articles; main_news_articles = new scrollList('main_news_articles', 5); main_news_articles.init();
The problem I am having is with the callback functions of the onclick event of the links (scrollUp and scrollDown). The this keyword within these functions is refering to the link and not the object.
To try and solve this I've made the title attribute of the link the same as the variable name of the scrollList object. I can reference the scrollList object like so Code:
I've just started learning jquery and have been trying to use this code which I found on this forum.I want to detect some text (addClients) in the url and add an css id to a list item with the class m1 (li class="m1") - so I get (li class="m1" id="expanded"):
This is what I have so far (which is not working)$(function() { $(document).ready(function() { var url = location.pathname;
I am looking to insert a keyword in to a javascript alert box when someone visits my website, so say they came from codingforums, it would say "Welcome, CodingForums.com Visitor". My keyword will be passed from the ad platform I am working with and shows up correctly in the tracking, so I'd imagine it's just a case of having the snippet of code for it to show in the alert, correct? If there is no keyword, I would just like it to say "Welcome Visitor" or something.
I want to use the new keyword to instantiate an object. The catch is I want to pass in variable length arguments. Given: function Foo () { this.args = Array.prototype.join.call (arguments); }var args = ["arg0", "arg1", "arg2"];
The following don't work (though I understand why): new Foo.apply (null, args); new (Foo.apply (null, args)); (new Foo).apply (null, args); How to do what I want without modifying Foo's source code?
My plan is to create a JavaScript class, with some functions and variables, and one of the functions is called when a user clicks on a certain element. However, I need to find out the ID of the element that was clicked (in the example, that of the <p>) for further processing. It looks basically like the following:
[Code]...
The result was very crazy, because console.log(this) gave me the node as result, and console.log($(this)) did the same only as jQuery node, but trying to find out the attribute via jQuery gave undefined as result. I haven't checked if this.id would work (should probably), but I'd prefer to keep the whole script in jQuery, if possible. I suspect it may be an overusage of the 'this' keyword, but if so, what's the proper way to do it?
So I know all about the caviats of the 'this' keyword when calling object functions from event listeners:
Code: var foo = {bar: true, zoo: function() { return this.bar; }}; foo.zoo(); > true a = foo.zoo; a(); >
And I know that I can get around this by using an anonymous function so that 'this' is preserved in it's original context:
[Code]...
But then someone pointed out this article on memory leaks when using anonymous functions to call object methods because the anonymous function gets access to ALL variables in the enclosing environment and my not be properly disposed of by the garbage collector [URL] So that lead me to think about using a "3rd-person" approach to referencing object properties from within object methods.
How can I grab the keyword phrase that someone used to enter the website and then pass that through a form? I would need to know for search engines and Google AdWords as well. Does anyone know how to do this?