Greasemonkey Seems To Fail With Too Many Gm_xmhttprequests?
Mar 22, 2006
I'm trying to write a script (my first) that loops through some table
rows and gets some data from another page using gm_xmlhttprequests. It
works if I keep the loop to one, but if I try and loop through all the
rows, and therefore have say 10-20 gm_xmlhttprequests, the script just
seems to fail. But if I put an alert inside each gm_xmlhttprequest, and
wait a bit before dismissing the alert, the gm_xmlhttprequest will
succeed and the data gets updated as planned. It seems as if the
gm_xmlhttprequests don't block, or the script keeps executing without
waiting for the requests to finish. I don't have any listeners on the
script, I just want it all to load when the page loads. Also, I looked
at the javascript console and it doesn't have any errors about the
gm_xmlhttprequests.
Can anyone tell me: 1) why my string appears twice; 2) how to make it appear just once?
I'm trying to insert code at the top of every viewed page. Obviously, document.body appends the string to the closing body tag which is not what I want. What could I use to insert my code as the first childnode under 'body'?
I am trying to learn some javascript at the moment and thought a simple greasemonkey script might be a good way to start.What I want the script to do is to replace an existing url on a website with a different url from another location within the website.
E.G. replace "/mailbox.php?inbox" with "/account.php?action=mybookmarks"
There are a lot of examples of replacing existing urls with different ones on the web but they all use id's to locate and replace urls.
This script is for a site I visit often and since I dont own it I dont have the ability to add id tags to the appropriate a tags, this makes writing this script a lot more difficult.This is the code I have so far;
would like to know a tool that could give me a clue on where is the error in a greasemonkey script that i'm working on. I'm using notepad, what tool could "run" the script and tell me where is the error?
What I would like to do is watch a countdown timer on a page, like the ones on swoopo.co.uk and then perfom an action depending on what time is left on the timer.
I've installed DOM inspector on Firefox and poked around with javascript shell and I think I've figured out how to read the timer and assign that to a variable, something like this -
var timer=document.getElementById('counter_index_page_162980').innerHTML;
Now I need to watch that so I guessed this would do -
while (timer!=="00:00:01") { var timer=document.getElementById('counter_index_page_162980').innerHTML; } alert('timer at 1 sec!');
But that just brings up an "unresponsive script" error in my browser.
Am I even close to the mark? I know I'm not going to win any auctions with this but I've already paid for the bids so I may as well use them now.
I'm a newbie to JavaScript and Greasemonkey and just started learning with 'Dive Into Greasemonkey'. I looked for an example on the web, but unfortunately I'm still missing something...
I have a text file which is a simple database:
Key01 Text01 Url01 Key02 Text02 Url02 ....
I'd like to insert after
<a href="anUrl" class="thisClass">Key01<a>
the element
<a href="Url01">Text01<a>
I tried to reuse the "Dumb Quotes" from 'Dive Into Greasemonkey' by replacing
I've just started some JavaScript development, but have run into a bit of a problem with a Greasemonkey script I'm working on. This script is for personal use. I'm doing a variety of things on a page, including auto-refreshing it. I want to display the number of clicks (preferably just on links) since the last refresh.
I'm trying to add some functionality to a existing application. I have no control over the input element ids. There are inputs I need to use that have $ in the id <input id='field1$0'>. Trying to use the id selector $('#field1$0') fails (result is undefined).Is this a bug or "by design" in qQuery?Is there a workaround, other than looping thru all inputs to find the ones I need?
I try to auto scroll to bottom of a div when the page is loaded. It works on firefox but it is not working on IE. How to scroll to bottom on a div when page is loaded on IE? You can test it by copy paste my codes into two html files.
I had to add the following DOCTYPE to a webpage in order for IE to parse my page design properly, and this caused the form on the page to fail in FireFox (which works fine without the doctype). The form works fine in IE.Here is the DOCTYPE I added to the top of the page;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
...which suggests my JavaScript is partially working, but is failing on my attempt to make Key/Value pairs. Unfortunately, I'm not knowledgeable enough on JavaScript/DOM to identify an error and would be grateful if a more seasoned programmer could let me know the error of my ways.
I am using ASP.NET for data retrieval and jQuery to perform various functions/animations (error bar, slide menu, table sorter, etc...). Everything is working great until the pages are viewed over and SSL connection. When viewing over SSL, some of the margins/padding stops working and the hover effects on tables stop working correctly (leaving cells coloured, not colouring others). After spending a day looking for the solution in Google, I haven't found anything that will fix the issue. No errors/warnings are displayed on the page.
I'm having trouble parsing through a table in I.E. Of course it works fine in firefox and chrome. I'm pulling html off of a txt doc and storing it in a temporary div made with createElement so I can go through and parse out the data. Code is below:
[ Code: var tempdiv = document.createElement("div"); //create temporary element to store html content in tempdiv.innerHTML = html; //dump html content into new element
[Code]....
It returns 0 for rows and and cols. If I use a getElementsById and grab a table already on the page it works fine.
I'm trying to GET or POST a request to a server. The code below works fine in Firefox, Safari, Chrome and IE7+ but fails in IE6 in spite of the xmlHttpCreate function being copied and pasted straight from Microsoft's MSDN site. The place where IE6 fails is on the oReq.send() line. It appears to create an activeX object but just won't send it. I have also tried oReq.send(null) and oReq.send("") but neither works.
I have a problem with writing cookie from Jacascript. My problem is that I have two server, one is A, and the other is B.
(1) I call a aaa.html from A. In aaa.html : ... <iframe id="frame1" src='http://B/bbb.html'></iframe> ... (2) In bbb.html : document.cookie="key=123"; alert(document.cookie);
I fail to write key=123 to cookie. Is this because of different ip? Is there any other way to write cookie?
I have a simple html document I have been using for some time on my (i.e.) abc.com domain that uses cookies. I recently purchased a new domain name and set up a service to redirect my new domain (i.e.) xyz.com to a sub-directory of the abc.com domain. In other words, when someone goes to URL xyz.com, they really end up in abc.com/xyz directory but the MSIE browser says they are xyz.com.
The problem is that cookies quit working in this setup when I copied the same HTML document in the /xyz subdirectory that xyz.com now accesses. I can't set or get a cookie any longer by calling the document.cookie function from JS any longer. The call does not fail but the data is always blank. I even tried setting the cookie and from the next line of code reading it back immediately and it still would not save the cookie.
Anyone know how to fix this?
I checked the value of location.host, .hostname .pathname, document.domain and they all indicate I am really at abc.com even though the address in my IE browser says I am at xyz.com.
If you try some codes and then catch exception, it should catch the exception when there is. However, if there is a setInterval method in the try clause, then the exception cannot be caughtthe following works ( a usual method is invoked in the try clause):
<script language="javascript" type="text/javascript"> function invoke() { var i=0;
for an anchor object, it is ok to reference by index. But when referenced by name, it seems unavailable in IE8 (not sure abt other IE version). I tried FF, it works well. So is it an IE bug or something? <a name="thisAnchor">HERE</a> <script language="javascript" type="text/javascript"> alert(document.anchors[0].nodeType) // no problem in IE and FF alert(document.anchors["thisAnchor"].nodeType) // does't work in IE? </script>
I have an Ajax call and it keeps return nothing versus some text when the ready state is 4, and the status is 0 inside Firefox 3.6.
I debug the server and it did return some text. The browser just doesn't expose it.
The JSP code is in a Weblogic server in port A, the JS code is included in the JSP coming from Weblogic port B (2nd server, same host). The Ajax call URL is on the same Weblogic server/port B as the JS. The Ajax call is started from a click on a button from the JSP page serving on port A).
Here are the configurations that works with the identical code:
1) Exactly like above using Internet Explorer
2) Exactly like above using Firefox, with the exception that the server is OC4J versus Weblogic
3) Exactly like the above (Weblogic), with the exception that the JSP and JS codes are in the same (single) server/port and using Firefox browser
So this is very strange. The same Weblogic server would work if all files are in a same server. In any case, the server code always work, and always return valid value (I wonder if some header is different). In fact IE works.
I think it's maybe security issue of Firefox handling of 2 servers. However, the same Firefox does work with OC4J servers.
I have a web page where I want to intercept keypress events in an INPUT-tag and check if it is the Enter key, which calls another function that executes a search. My code runs on Netscape 7 for Windows, IE 6 for Windows and IE5.1 for Mac, but not on Netscape 7 for Mac. When I press the Enter key, the event gets caught but it does not get prevented and the search is never executed.
The code looks like this:
function KeyDownHandler(e) { // if not Netscape, get IE event if ( !e ) e = window.event; if ( !e ) return true;
// Get valid ascii character code var key = typeof e.keyCode != 'undefined' ? e.keyCode : e.charCode; // process only the Enter key if (key == 13) { // cancel the default submit if (e.preventDefault) e.preventDefault(); else window.event.returnValue=false;
// submit the form by programmatically searching search(); return false; } else { return true; } }