Working on a script for facebook that parses entries and collects bonuses for certain games.My script is intended to only run in firefox, using the greasemonkey addon.I am adding an event to an iframe which contains the confirmation page for bonuses. At this time, the script finds the "Yes" button, then adds the event:
then I press the "Yes" button.The problem comes in when the "load" is not heard, and the page coming up from clicking yes contains a redirect which changes the top.href, taking me away from the bonus page and loading a game where I dont want to be.
I am removing all previous events attached on this iframe. The iframe has already accessed one page at this point, and used 'load' on that time. I have arrived at this function because of the previous addEventListener firing, so I know it works, but this one is not firing. I have put in debug printers at every line to see if its getting that far, and it is, only the event is not heard.
I dont seem to have the option of loading a second iframe to push this into because the "Yes" button sends in a form full of stuff that would be difficult to parse and copy out to make another href line.
if (navigator.appName == "Microsoft Internet Explorer"){ if (version.substring(0,1) <= 4){ if (version.substring(22,23) <= 4){ document.write("This Browser is IE4 or lower!"); } else{ document.write("This Browser is IE5 or higher!"); } } } else{ document.write("This Browser isn't IE!"); }
document.write("<br>This Browser is " +version); </script>
The version string usually return's something like this:
4.0 (compatible; MSIE 5.0; Windows 98; DigExt)
Can anyone see any problem with using this method?
I am trying to catch keypresses in my canvas tag, but it appears that that is not valid.
I may try to just create a hidden input box that will allow me to catch keypresses.
I am trying to write a very simple asteroids game for a presentation on Ajax in July, to show that javascript can do more than it was able to a couple of years ago.
Is there a way to catch when a div content is updated through javascript? I update a div content through rjs and I need to call tablesorter every time the div is updated.
I have a main page ('index.php') with an iframe ('mainframe') on the left hand side. All the links on the index page load a new page of mainly text content into the iframe.
All pretty straightforward, but I am using some javascript to launch and hide a floating div on the index page (if I launch it in the iframe, it will be restricted to the height and width of that frame). The code to show / hide the div is located on the page index.php - say the function is called 'showMe()', I would call top.showMe() to launch the div.
The Div works fine, but when I try and catch an event via:
event.srcelement
it returns the error message 'object required', because it is being passed from a link on a totally seperate page (the iframe)...
Is there any method for the main page (index.php) to catch the event on 'mainframe' that triggers the div ?
The div's do show up and hide, and I can load source content into them - only error messages keep flashing up on IE (but not on Netscape / Firefox, etc).
How may I catch all postback events which are triggered by all controls using jQuery in an ASPX page?
I am using the below provided code and displaying an alert window when any control posts back to the server, however not all postbacks are getting caught by the highlighted code.
I have a page contained in an iframe. The page contained in the iframe shows videos all the time.Each video has an id that changes when a new video is played.I need to be able to catch this changing id in the page that has the iframe (the parent page) and that is hosted in a different server from the contained page.The only languages that can be used in the contained page are javascript, ajax and jquery In the parent page you can use these languages + php.
I'm not posting the contained page code just because, believe me, it's humongous,full of variables and functions from other files and modules.The only thing needed there is a variable, myid, that stores the new id when a new video is played.Then I have to post, send, throw ... etc. myid and after that catch it in the parent page, remembering that myid's value changes when a new video is played and that.I have to get that new value at all times.I have to get the value of the playing video id to do things like changing the background of the page depending on the video played or showing a webpage depending on the video played ... and so on.
This is the code I am using to test this. In FF and Op. When I click on an option in the select box, the alert pops up. In IE and Chrome, it doesn't seem to catch it at all. $('.clickopt').mousedown(function(){ alert("test"); });
Catching <a> link click - Fancy Box I have an example here of the simple image gallery I'm working with. The thumbnails are loaded from an XML and are linked to larger images. untitled I want to use Fancy box Fancybox - Fancy lightbox alternative to show the larger images. I have fancy box working on other sites but can't get it to work here. In an attempt to work out why it's not working I tried to capture the click on the <a> link, but that won't work.
It would be easier to explain this if you play mafia wars (or any game that includes intra-game exchange of gifts/items between members) but the actual scripting doesn't require any knowledge of the game.
Background Information Mafia Wars is a game on Facebook (and myspace, yahoo etc.) that among other things allows its players to send gifts to each other. Now because different people end up with more things of one type and are short of things of another type, the players have evolved a trading dynamic. Where x number of Item 1 is traded for y number of Item 2. A simple marketplace. And with this territory come scammers.
Essentially a player who doesn't go through with his end of the deal. good player sends item to bad player. bad player removes good player from mafia and blocks him for ever contacting him through his facebook profile. This has given rise to my group, among many others, that lists these scammers (identified with their facebook profile ids) as they are reported every day. Now over time the list has grown and it has become difficult and unrealistic to expect people to know who is on the list and who is not.
The Requirement A javascript bookmarklet (there are many already servicing different needs of the players) that sits on the browser and tells the user if the person he is about to trade with is a listed scammer or not.
The Breakdown The user will click the bookmarklet when he is on the facebook profile of the person he is about to trade with. When clicked the script will pull the facebook profile id from the current page, and then scan a text file located on a third-party server and return with a pop-up box message that reports if the id is listed as a scammer or not.
If visual basic and firebug doesn't show me any error and if code doesn't work on any browser...so what should i do. I did a little boring - to read my code again to find a simple syntax errors like - writte() for exemple.
But even that does not give me anything! Is there any good recomendations how to change it all?
Look at this code:
Browser gives me out only - Please enter a valid name
This makes my life a bit easier. After executing this script you should be able to addEventListener on all elements instead of determining if you want to call attachEvent or addEventListener. Edit: This is the original version. The revised version is below if (!document.addEventListener && document.attachEvent) { Object.prototype.addEventListener = function(eventName, func, capture) { if (this.attachEvent) this.attachEvent('on' + eventName, func); }
var i, l = document.all.length;
for (i = 0; i < l; i++) document.all[i].addEventListener = Object.prototype.addEventListener;
This one is harder to use but it is nicer to the DOM and all newly created objects. The problem with it is that addEventListener will only be available after the page loads.
If you want to use addEventListener from a window.onload script make sure that this code is included in the body, not in the head. document.body.onload is called before window.onload.
Now, only elements that already have attachEvent will get an addEventListener. Elements created with document.createElement will automatically get addEventListener.
function createIEaddEventListeners() { if (document.addEventListener || !document.attachEvent) return;
function ieAddEventListener(eventName, handler, capture) { if (this.attachEvent) this.attachEvent('on' + eventName, handler); }
function attachToAll() { var i, l = document.all.length;
for (i = 0; i < l; i++) if (document.all[i].attachEvent) document.all[i].addEventListener = ieAddEventListener; }
var originalCreateElement = document.createElement;
document.createElement = function(tagName) { var element = originalCreateElement(tagName);
if (element.attachEvent) element.addEventListener = ieAddEventListener;
So I created a custom rule following numerous examples out on the web for a dynamic text input, but for some reason it seems to be letting spaces through even though my regexp tests out ok to not match when the value is any combination of spaces...
$.validator.addMethod("noSpace", function(value, element){ return this.optional(element) || /^[a-z0-9][a-z0-9_ ]{0,70}$/i.test(value); }, "Please enter a name starting with either a letter or a digit."); $('#form').validate({ rules: { [Code]...
The odd thing is, it will work if you type in a space followed by a character, but if you type in one space, or one space followed by x number of spaces, it just lets it through like it's valid. But yet when I look at the demos and examples that I pulled this from, they never let those scenarios go through.
Today I have been testing the event models from Netscape 4.8 and IE 4 to the current crop of browsers. I'd like to write a small event library similar in purpose to the Yahoo! UI event library but with less features and code. The Yahoo! event library is one of the best libraries in YUI but it still seems to me to have some confused code...that or I'm still confused.
The Yahoo! UI library focuses on using addEventListener and attachEvent. However, due to the click and dblclick bugs in Safari a long legacy event workaround is included to use a Netscape4-type event model for Safari. Something like this
var listeners = [function(event){}, function(event){}]; document.getElementById('blue').onmouseover = function(event) { for (var i=0; i<listeners.length; i++) { listeners[i](event); } };
With this above example, multiple handler functions can be fired for a single event. I imagine that this is an old trick that has been around for a long time, yes?
With all the new browsers I tested with this legacy workaround, the listener handlers can use event.stopPropogation() or event.cancelBubble=true and they work as desired. The handler functions can also use event.preventDefault() and event.returnValue=false and they too work. These seem to work because the event object passed to the handlers is a modern event object and not one from Netscape4.
My question is, if Safari needs this legacy workaround, and the legacy workaround seems to work in all the browsers that have addEventListener or attachEvent, then why bother with the addEventListener and attachEvent functions at all? Why not just use the legacy way for all browsers and all type of events.?
I was using this script to learn how to use event listeners and I need to know how to make it work for IE. I keep finding attachEvent scripts that look like they will work, but I get nothing. I've spent several hours finding script after script that simply don't work. I don't know where to turn next. Any script to attach these events to IE?
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "[URL]"> <html> <head> <title>Test</title> </head> <body><div> <script type="text/javascript">
if(!Array.prototype.link) Array.prototype.link = function(f) { for(var Obect1 = new Array(), i = 0, n = this.length, t = arguments[1]; i < n; i++) Obect1[i] = f.call(t, this[i], i, this);return Obect1;}; Array.prototype.linkMethod = function(m) { var n = this.length, args = this.slice.call(arguments, 1);if(typeof m == "string" && n > 0) m = this[0][m];for(var Obect2 = [], i = 0; i < n; i++) Obect2[i] = m.apply(this[i], args);return Obect2;}; .....
I'm trying to add a clickevent to an anchor that I created trough DOM. This his how the code looks:
var oSubLink = document.createElement("A"); oSubLink.appendChild(document.createTextNode("+")); oCel.appendChild(oSubLink); oSubLink.addEventListener("click", klapUit(oTabel.id, eigenschappen[2]), false);
It failes at the addEventListener call, saying "No such interface supported" (appears to be one of the two default error messages IE gives when it can't handle your JS :mad: ).
How can I fix this? The solution should work in IE6, FF, Opera, Mozilla and Safari.
Is there a way to send parameters to the function being added to an event with addEventListener. I.E. say you have this function
Code: function someFcn(i){ alert(i); } and I add it to an object.
Code: someElement.addEventListener('focus', someFcn, false); Is there a way to send a parameter to someFcn. For Example I have tried this but it failed
Code: var someString = 'Hello World' someElement.addEventListener('focus', someFcn(someString), false);
When you use addEventListener (or addEvent in IE) to call an object method, does it call it with the correct this parameter?
The ECMAScript reference has a lot to say about the caller using Function.prototype.call or Function.prototype.apply and passing the correct this pointer for the context, but how does addEventListener determine the correct this pointer. Or does it just punt and pass the global context, thus making it impossible to refer to the object this in an object method used as an event listener?
Task: I would like to implement a CtrlEnter event that would work on both IE and FF.
My approach: use addEventListener() and attachEvent() to capture the event then trigger a function to check for CtrlEnter: if (oTarea.addEventListener) { oTarea.addEventListener('keyup', function() {checkCtrlEnter(event);}, false); } else if (oTarea.attachEvent) { oTarea.attachEvent('onkeyup', function() {checkCtrlEnter(event);}); }
function checkCtrlEnter(e) { if (e.ctrlKey && e.keyCode == 13) { // do something } return false; }
element.event NS3+, IE4+, dunno about opera or others
Since I'm only concerned with attaching a single event and don't care about bubbling/capturing, am I best off not using the old style of event registering to assure maxium compatibility?