2016-12-20 9 views
0

私はデータベースからフェッチされ、iframeに貼り付けられるhtmlコンテンツをいくつか持っています。 HTMLコンテンツは、以下のようなもの、htmlからjavacript変数を取得

<html> 
<head></head> 
    <body style="background:#ffffff;"> 
<script>var el_list_obj = {'1_akdvf':{name:"test.png", width:"250px", height:"200px"},'2_akdvf':{name:"test2.png", width:"350px", height:"300px"}};</script> 
<img style="top: 0px; left: 1px; width: 250px; z-index: 1; height: 200px; opacity: 1; transform: rotate(0deg);" class="slide-elements" src="/media-files/test.png"> 
<img style="top: 0px; left: 1px; width: 350px; z-index: 1; height: 300px; opacity: 1; transform: rotate(0deg);" class="slide-elements" src="/media-files/test2.png"> 
</body> 
</html> 

私はこの使用してjavascriptやjqueryのを取得する方法を、スクリプトからel_list_obj変数を使用したいのですか?

おかげで、私はjavascriptオブジェクトとして下記する

var el_list_obj = {'1_akdvf':{name:"test.png", width:"250px", height:"200px"},'2_akdvf':{name:"test2.png", width:"350px", height:"300px"}}; 

、私は、以下の

var doc = document.implementation.createHTMLDocument(); // Sandbox 
doc.body.innerHTML = rData['body_content']; 
var scriptElements = doc.getElementsByTagName('script'); 
var arrayScriptContents = [].map.call(scriptElements, function(el) { 
self.elWinDataObj = el.textContent; 
}); 

を試みたが、それは文字列として、以下の私を返します。敬具、

Neha

+0

それは有効なJSONではありません@Geeky http://stackoverflow.com/a/6649090/3008050が – karan3112

+1

あなたが(el_list_obj) – Geeky

+1

をjson.parseすることができ、これを試してみてください。 – Barmar

答えて

0

eval()を使用してみてください。

var b=`var el_list_obj = {'1_akdvf':{name:"test.png", width:"250px", height:"200px"},'2_akdvf':{name:"test2.png", width:"350px", height:"300px"}};`; 

eval(b); 

、あなたがその名前でオブジェクトにアクセスすることができます:あなただけの変数名を指定せずにJSONオブジェクトをしたい場合、あなたはこれを試すことができ

console.log(el_list_obj["1_akdvf"]); 
+0

'eval'をあなたがそれなしですることはできません。 –

+0

はい、私は同意します。この場合、小さなデータでは大きな問題ではありません。しかし、どこでもeval()を使うべきではありません。 –

0

。現在のJSONを変更して文字列として保存する必要があることに注意してください。

$(document).ready(function(e){ 
 
\t var str = 'var el_list_obj = {"1_akdvf":{name:"test.png", width:"250px", height:"200px"},"2_akdvf":{name:"test2.png", width:"350px", height:"300px"}};' 
 
\t var out = iDontUseEval(str); 
 
\t console.log(out); 
 
}); 
 

 
function iDontUseEval(fn) { 
 
\t if(fn.startsWith("var")){ 
 
\t var evaluateThis = fn.substr(fn.indexOf("=")+1).trim() 
 
    \t return new Function('return ' + evaluateThis)(); 
 
\t } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

関連する問題