Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Получить JSON с другого домена и отобразить на странице. (https://javascript.ru/forum/misc/54615-poluchit-json-s-drugogo-domena-i-otobrazit-na-stranice.html)

рони 24.03.2015 23:55

laimas,
спасибо за ссылку но видимо моих знаний недостаточно чтоб воспользоваться тем кодом.

laimas 25.03.2015 00:38

Так надо чтобы и запрашиваемый сервер эту технологию поддерживал. Запросив по данному адресу jsonp проблем с доступом не будет, но будут проблемы:

SyntaxError: missing ; before statement
{"2186":{"row":{"last":"57,760","ma":"\u041f....


Под Win, значит хватит:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<hta:application applicationname="myapp"
border="thin" borderstyle="normal" caption="yes" icon="icon.ico" scroll="no"
showintaskbar="yes" singleinstance="yes" maximizebutton="yes" contextmenu="yes"
windowstate="maximize" selection="yes" innerborder ="no" />
<meta http-equiv="msthemecompatible" content="no" />
<meta http-equiv="X-UA-Compatible" content="IE=11" />

<script>
function f(d) {
    alert(d)
}
</script>

</head>

<body>
<iframe style="display:none" src="http://tsw.ru.forexprostools.com/api.php?action=refresher&pairs=2186&timeframe=60" name="frame" onload="f(frame.document.body.innerHTML)"></iframe>
</body>
</html>

Сохранить с расширением .hta, вот и весь Ajax. )

laimas 25.03.2015 00:50

Это пример jsonp с поддержкой сервером:
<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(function() {
    $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?",
        function(data){
          $.each(data.items, function(i,item){
            $("<img/>").attr("src", item.media.m).appendTo("#ims");
            if ( i == 4 ) return false;
          });
        });
});
</script>     
</head> 
<body>
<div id="ims">
</div>
</body>
</html>

рони 25.03.2015 00:52

laimas,
причину и решение расказал danik.js, ещё во 2 посте других решений видимо нет.

laimas 25.03.2015 01:01

То о чем говорил danik.js, было бы идеальным, но у автора нет сервера, но для того что он хочет ему эти проблемы и не мешают, если он только сам их не захочет. )

VVi3ard 26.03.2015 11:46

Вложений: 1
В итоге сделал часть скрипта на VBS (исходники гаджета прилагаю)

То чего хотел добился все работает четко.

Возникла новая проблема. хочу теперь выводить текст: из тега "technicalSummary" но он в json кодировке, не могу понять как силами VBS его перевести в обычный текст... (Напомню что я делаю гаджет для win7)

Вот функция на VBS
Function objXML_onreadystatechange()
    If (objXML.readyState = 4) Then
    	'msgbox objXML.statusText
		If (objXML.status = 200) Then
		  s = objXML.responseText
		  
		  StartUSD = InStr(1,s,"summaryLast")
		  USDS = Mid(s,StartUSD+14,6)	
		  StartTime = InStr(StartUSD,s,"time")
		  TimeS = Mid(s,StartTime+18,8)	
		  
		  StartText = InStr(1,s,"technicalSummary")+19
		  
		  EndText = InStr(StartText,s,"""")
		  
		  TextS = Mid(s,StartText,EndText-StartText)	
		  'ResText = json_decode(TextS)

		  
		  document.getElementById("summaryLast").innerHTML = USDS
		  document.getElementById("Time").innerHTML = TimeS
		else 
		  'msgbox objXML.statusText
		  document.getElementById("summaryLast").innerHTML = "" 'убираем индикатор загрузки
		End If
  End If
  
End Function


Нужно тарабарщину из TextS превратить в нормальный текст...

VVi3ard 26.03.2015 12:03

Может быть можно как то эту тарабарщину из VBS вывести в HTML и уже там как то при рендеренге страницы заменить на обычный текст с помощью json_decode.

laimas 26.03.2015 13:30

json_decode - это в чем?

JSON в разных средах http://json.org/, и увы в VBS нужно писать парсер, есть на git

PS. А подключить JS-библиотеку json2.js, и не париться?

VVi3ard 26.03.2015 14:14

Цитата:

PS. А подключить JS-библиотеку json2.js, и не париться?
Именно это и хочу, только не пойму как ее вызвать из VBS скрипта...

laimas 26.03.2015 14:34

JSON.parse(TextS)

После Mid() у вас должен быть валидный json.


Часовой пояс GMT +3, время: 06:45.