JQuery :: Parsing XML With IE - Cannot Evaluate Value?
May 7, 2009
The following example works great in Firefox, and Chrome but fails miserably in IE (6,7,8). I'm running JQuery 1.3.2 if it makes a difference:
$('resp',"<root><resp>value</resp></root>").text();
That evaluates to "value" in everything except IE.
I have a script that will loop through all the INPUT elements of a form; if the input is a submit it will disable the submit (or enable the submit, depending upon what is passed to the function.) I hate using eval() - I avoid it whenever I can! Is there a better way to dynamically process the ".disabled = 'true'/'false';" portion?
in the XPath expression "/html/body/div/ul[1]/li[5]", I need to traverse from li[1] to li[5], so I should use a variable here , like this:
for (index =1; index<6; i++) { nodes = document.evaluate("/html/body/div/ul[1]/li[index]", ....); // the variable index here is invalid! } my question is: How to use the variable in XPath expression?
Curious about the following issue. I currently have a dynamic drop-down based on the value of each option.. If selection in top drop-down is B it will show all options with a B contained in the second/resulting drop-down.
Now - I also want to evaluate the options by having the script check for a few keywords..
Example - have it evaluate the drop-down on page load for options with text containing 'blah123' (ex. <option value="0323G">Qwerty - blah123</option>). And if any of the options have that text the script will generate an additional drop-down menu allowing you to select blah123 or other specified text. Say another thing I'd like to search each text string for is 'abump'. If there is 'blah123' and 'abump' contained within the drop-down, a third drop-down menu will be generated (as said before) with only blah123 and abump as options. Whichever of these is selected will narrow down the options available in the final drop-down menu.
I have built a page on a recruitment website which allows users to upload their CV via ASPUpload i.e a browse button. However I want to limit the file type to just MS Word documents as I do want them uploading large PowerPoint files etc. My idea is to have some javascript which evaluates the last 4 characters of the file name to ensure it is .doc So if they try to upload anything other than a .doc file a dialogue box will appear stating that they must only upload MS Word Document (when they click the ‘Upload CV’ button).
Does anyone know how I can evaluate the last 4 characters of the file name? Once the user has browsed to their CV on their PC the path & file name will appear in a text field called ‘CV’.
I don't know how to evaluate the no-blank selections against each other from a form as follows: .
I have a form with 6 dropdown fields, each containing a selection of 30 options (the 30 options are the same for each dropdown list). The user needs to select 'one of the 30 options' from each dropdown selection, but each option they select must be unique (no duplicate selections) or it must be left blank. E.g. The user can select Option3 within "dropdown1", but must select a different option for the other dropdowns - OR leave them unselected.
I am returning the present time - then using the .substr to remove all digits except the last two on the right (i.e effectively returning the value 32 from 65344532) I am then looping, subtracting 11 from that number until the value is less than 11. The intent being to then return the value from the appropriate matching array ID code...
The problem arises with evaluating two digit numbers beginning with zero - In cases where the last two numbers are greater than 09, the looping returns a 1 digit number for valuse less than 10, in cases where the last two digits begin with zero the loop will not begin. I have attempted to use the switch(n) to determine if any 01, 02, 03 ... etc exists but this is not evaluating correctly - is this due to using the date/time object and if so is there a good way to convert this to either a numeric or string datatype where the case can be evaluated correctly?
I was wondering if it's possible to capture a piece of HTML using XPath where the source is a sting rather than a document. I know how to use xPath and document.evaluate() as I've used it before on actual web pages - I just don't understand how to run it on a string of HTML.
E.g. if I have this string: var stg = "<div>The best-laid schemes o' <span>mice</span> an' men</div>"; I'd like to convert this string into something that I can run the document.evaluate() on so that I can find the contents of the SPAN element (without loading the string into a real browser page).
You have an AJAX request and the response is mixed HTML + JavaScript. The javascript is referring to elements in the HTML component. Currently the JavaScript gets evaluated first thing when success is triggered and the HTML is returned as a parameter. Obviously this is not going to work ( in this scenario anyway ). As a previous Mootools user I was used to Request.HTML's responseJavaScript parameter and evalScripts option. None of there options are available in the $.ajax implementation.
P.S. I know I could make the javascript a file and load it separately. I know I can make my response JSON and have the js and html in separate properties of the JSON object. I want neither.
I have an outer page and an inner iframe. The outer page calculates some javascript, and wants the inner frame to run it. The inner frame should hit a page on the same (private) web server, so this is not a cross-site scripting attack. But I would prefer not to taint the target page with any extra logic to do this. (I will if I must.)
Note that both the outer and inner page have a span with the same ID.
This question will resemble a JavaScript FAQ - how to evaluate Javascript on the fly, or how to reload a JS file. The answers on the web generally do not transport the JS across a frame boundary, so they don't address the bug I encountered, and I can't tell if prototype.js or IE is at fault.
The outer page calls Ajax goodies that generate some JS looking like this:
Element.update("update_me", "here I B");
The page sends that, as a string, into this JS (in application.js):
function update_grinder(sauce) { var grinder = $('grinder');
if (grinder) { var doc = grinder.contentDocument; if (!doc) doc = grinder.document; if (doc) { evaluate(doc, sauce); return; } } document.write("your browser sucks"); }
So that contains enough logic to find the iframe's document, and it works for Firefox, IE, Konqueror, and Opera. The code calls evaluate() with the document where we need the evaluation context, and the string with our source.
Here's evaluate():
function evaluate(doc, sauce) { var s = doc.createElement('script'); //s.defer = true; // <-- no effect s.text = sauce; var body = doc.getElementsByTagName('body').item(0);
if (body) { body.appendChild(s); return; } body = doc.body; if (body) { body.appendChild(s); return; } }
That creates a <scriptblock, sticks our string in as its contents, and pushes the block to the end of our <bodytag. Now here's the bug:
Firefox updates the inner <span id='update_me'>, and IE updates the outer one.
If I remove the outer <span id='update_me'>, then IE simply can't find it and throws an error. Even though it evaluates a script block clearly in the context of the inner iframe.
I have tried calling the script from setTimeout, and from a button's onclick handler.
Is there some script.aculo.us way to fix (yet another) bug in IE? Or is this a bug in prototype.js?
The code works OK in Firefox and Google Chrome, but it fails in Konqueror (khtml) or IE 8.0: the resulting array is empty although the xml read by Ajax call is OK. I tried also with "$("tagname", xml).each()" - same result.
I'm trying to use it to load in an XML file and output some data. I followed a tutorial on it but my XML file isn't loading.[code]Now my thinking is that when the document loads, it alerts me that the jQuery is running, and it does this. I had hoped that after closing that alert, another one would show saying that the XML file has loaded - This would ensure that the function 'parseXML' has been called, but it does not return an alert or populate my#xml_addressbook div.My index page is at the root, and both my XML file and the javascript file are in a folder, as shown below.[code]
I'm building an application with a c#.net server and a good bit of jquery on the front end. I'm having trouble getting/parsing data from c#. In the C#, I am doing a db call to pull the information for all users, and putting it into xml format:
string xml = "<?xml version='1.0' encoding='utf-8' ?>"; xml += "<Users>"; while (res.Read()) {
[Code].....
When I run the application, I'm getting the 'in AjaxSucceeded [object XMLDocument]' alert, but I cannot get inside of the 'each' loop.
I want to get all the "a" elements with the href attribute in this form: [URL] where any can be a string containing just letters and/or numbers. I'm new to regex and XPath so i can't get it right. I digured it out the regex but i'm not sure if it's 100% correct:
I have a function that parses xml data to a <ul>. What I need to know is how to clear the <ul> before parsing a second time to refresh the list.my current script looks like this:
I am trying to do is take the XML response below and obtain the src attribute from each image. I then want to append that value to an array which can be used later. Now my issue is when it gets to
Code:
It only iterates to the first row in the XML document and gives me 001.jpg when I output tmpImageSrc to console. It won't cycle through the rest of the image tags as the alert only appears once with a value of 0. What am I missing? Am I not using the proper .each? How can I build my array from the XML response?
I am working on a web app that pulls content using multiple JSON files. I have tried numerous methods of parsing the JSON, but only the following has worked for me.
Ultimately I would like to somehow store the contents of the JSON files locally and swap out as new content is available. Unfortunately, I don't know how to do that. And possibly a method of using a more current version of jQuery to parse my JSON files?
I have an xml with nested repeatingentries. I want to parse it using jquery, I have tried .find methodbut it ignores the child parent relation and consider all as child nodesI want to parse it inhierarchy like first it should show top level categories then if have nested categories and then if have products and so on.
I pull XML from server using .load() and then iterate with .each() over some 3000 nodes. I use .find() to get 7 sub-nodes and store them internally (into arrays). It works, but it is disappointingly slow. On my obsolete P4 it can take 8-10 seconds during which the whole browser (FF) is completely frozen. On faster computers the processing time is shorter, but still way too long. What can I do to cut this time? I certainly need speed up of an order, two orders would be nice. Would JSON be any faster? Or should I pull text/plain in custom format and parse it in my JS code?