Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
30
rated 0 times [  31] [ 1]  / answers: 1 / hits: 28175  / 10 Years ago, fri, may 9, 2014, 12:00:00

I have got an html page with this content, called page1.html:



<div>
<div id=content>
content
</div>
<script type=text/javascript>
var x=5;
var y=2;
</script>
<div id=other>Some other content</div>
</div>


In another html page, I'd like to get the value of the variable x (5).
This is the main page:



<!DOCTYPE html>
<html>
<head lang=en>
<script type=text/javascript src=app.js></script>
</head>
<body>
<div id=new_content></div>
</body>
</html>


And this is the app.js script:



$(function(){
$.get('page1.html', function(result){
var obj = $(result).find('script');
$(this).append($('#new_content').text(obj.html()));
});
});


And the result is var x=5; var y=2;. Is there a way to get only the value 5 from the var x?



Thanks for the help.



EDIT: I forgot to write that it's only an example, the code into the script in page1.html is more complex than the one shown. The object obj in app.js is an [object htmlscriptelement] so I'd like to know if a method/att exists that I can use to directly access the var x.


More From » jquery

 Answers
18

This seems like a bit of a weird thing to try and do.



I'll do my best to answer but it would be good to get a bit more context around why you want to do this as it might be that there's a better, cleaner way to do it.



My recommendation with the information that you've given would be to assign the values to a DOM object, jQuery is built to traverse the DOM and manipulate it, it's really not a good idea to try and parse raw javascript to extract variable values.



So, page 1 would look like this:



<div>
<div id=content>
content
</div>
<div class=myData data-x=5 data-y=2 />
<div id=other>Some other content</div>
</div>


Then my jQuery would look something like this:



$(function(){
$.get('page1.html', function(result){
var obj = $(result).find('script');
var page1X = $(result).find('div.myData').data('x');
var page1Y = $(result).find('div.myData').data('y');
});
});


This is just pseudo code, but hopefully you get the idea.



Reference links:




[#71112] Wednesday, May 7, 2014, 10 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
hallie

Total Points: 503
Total Questions: 114
Total Answers: 103

Location: Iraq
Member since Fri, Jun 5, 2020
4 Years ago
;