2017-01-10 92 views
-2

我想建立一個瀏覽器擴展與關鍵功能,包括從HTML頁面獲取文本輸入,並用URL連接並從該連接的URL獲取JSON。嗨我怎麼能從一個URL使用JavaScript獲取JSON

我想知道如何使用JavaScript從一個URL獲取json到一個變量。

這是獲取用戶插入文本的html腳本。

<html> 
<body> 
<input type="text" id="search" name="Name" maxlength="10" class="searchField" autocomplete="off" title="" ><br> 
    </p> 
</form> 
<p align="center"> 
<button type="button" id="srchbutton" style="background-color:Thistle;margin-left:auto;margin-right:auto;display:block;margin-top:22%;margin-bottom:%"> Search</button> 
</p> 
<script language="javascript" type="text/javascript" src="thanq.js"> 
    var button= document.getElementById('srchbutton'); 
    button.onclick= linkprocess(); 
    console.log("hi there"); 
</script> 
</body> 
</html> 

這是我嘗試從URL訪問json的JavaScript。

var oldlink='URL'; 
var newlink; 
function linkprocess(links){ 
    var text= document.getElementById('search'); 
    newlink=oldlink+text; 
    GetJson(newlink); 
    console.log(newlink); 
} 
+1

你需要什麼瀏覽器支持? –

+0

試試這個'$ .getJSON('newlink',function(data){ console.log(data) })' –

+0

使用jQuery的'$ .getJSON()'或學習原始的'XMLHttpRequest's,這就是我建議你是否在學習。 – PHPglue

回答

0

您可以在純javascript中使用xmlhttp請求來執行此操作。看看這個W3學校的文章:JSON Http Request

爲了簡化代碼編寫,你可以jQuerys $ .get()或$ .ajax()方法,一旦你適應機制。

0

或者你可以使用現代化的fetch API,e.g:

const searchVal = document.getElementById('search').value; 

fetch('http://someprefix/' + searchVal) 
    .then(response => response.json()) 
    .then(data => { 
    console.log('Fetched:', data); 
    }) 
    .catch(err => { 
    console.error('Fetch error:', err); 
    }); 
+0

只是不要指望它在許多瀏覽器上工作。 – PHPglue

+0

是的,你可以加載一個polyfill - https://github.com/github/fetch,但是這看起來更像是一個實驗,而不是產品代碼 –

+0

@PHPglue - 它在IE中本身不工作,而「新IE 「,這是Safari - 否則支持是非常普遍的 –