JavaScript JSON调用将只加载一次
我有一个onclick调用searchSymbol(),它在第一次尝试时工作得非常好。然而,它只工作一次。我需要做什么才能确保我的警报(tickerSymbol)多次正常工作?我正在更改每个按钮的“Ticker”值单击文本字段 HTMLJavaScript JSON调用将只加载一次,javascript,html,json,Javascript,Html,Json,我有一个onclick调用searchSymbol(),它在第一次尝试时工作得非常好。然而,它只工作一次。我需要做什么才能确保我的警报(tickerSymbol)多次正常工作?我正在更改每个按钮的“Ticker”值单击文本字段 HTML <input type="text" id="searchTicker" placeholder="Ticker Symbol..." required> <input type="button" id="searchButton" oncli
<input type="text" id="searchTicker" placeholder="Ticker Symbol..." required>
<input type="button" id="searchButton" onclick=searchSymbol() required>
<script type="text/javascript" id="myScript"></script>
此警报仅在第一次单击“我的”按钮时有效。我不确定我做错了什么
alert(tickerSymbol)
我认为分配脚本的
src
不会导致它重新加载。您需要创建一个新的脚本标记
function searchSymbol() {
var ticker = document.getElementById("searchTicker").value;
document.getElementById('searchTicker').value='';
var url="http://ir.stockpr.com/service/quote_jsonp?symbol=";
var extra="&jsonp=quote_search";
var newscript = document.createElement("script");
newscript.src = url+ticker+extra;
document.head.appendChild(newscript);
}
更改脚本标记的src不会使其获得新的src。您必须通过创建新的脚本标记以编程方式获取JSONP,如下所示:
function searchSymbol() {
var ticker = document.getElementById("searchTicker").value;
document.getElementById('searchTicker').value='';
var url="https://ir.stockpr.com/service/quote_jsonp?symbol=";
var extra="&jsonp=quote_search";
// Remove already existing script tag
if(document.getElementById('myScript'))
document.getElementById('myScript').parentNode.removeChild(document.getElementById('myScript'));
// Create script tag and add it to head
var script = document.createElement('script');
script.src = url+ticker+extra;
script.id = 'myScript';
document.head.appendChild(script)
}
function quote_search(json) {
// Check if we get anything in response
if(json && json.symbol){
var tickerSymbol = json.symbol
alert(tickerSymbol)
}
}
您正在将
src
更改为相同的值,因此不会发生任何事情。每次单击时,我都会更新“Ticker”。所以它不是相同的值。myScript是一个script标记()吗?更新了post,就像SLaks说的,你没有更新ticker的值。你想在其中添加+1
吗?不确定删除旧的
元素是否有任何真正的好处,但我确信它不会有任何伤害。检查“json.symbol”值的嵌套方法是什么?不检索任何内容?@husharoonie要检查json API是否返回任何值,最好使用AJAX(XMLHttpRequest)相反,我该怎么做呢?别介意我的最后一句话,看到的是您正在处理的JSONP,现在更新了答案
function searchSymbol() {
var ticker = document.getElementById("searchTicker").value;
document.getElementById('searchTicker').value='';
var url="https://ir.stockpr.com/service/quote_jsonp?symbol=";
var extra="&jsonp=quote_search";
// Remove already existing script tag
if(document.getElementById('myScript'))
document.getElementById('myScript').parentNode.removeChild(document.getElementById('myScript'));
// Create script tag and add it to head
var script = document.createElement('script');
script.src = url+ticker+extra;
script.id = 'myScript';
document.head.appendChild(script)
}
function quote_search(json) {
// Check if we get anything in response
if(json && json.symbol){
var tickerSymbol = json.symbol
alert(tickerSymbol)
}
}