我有一个onclick调用searchSymbol(),它在第一次尝试时完全正常。但是,它只能工作一次。为了确保我的警报(tickerSymbol)多次工作,我需要做什么?我正在改变" Ticker"使每个按钮值为textField。
HTML
<input type="text" id="searchTicker" placeholder="Ticker Symbol..." required>
<input type="button" id="searchButton" onclick=searchSymbol() required>
<script type="text/javascript" id="myScript"></script>
的.js
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";
document.getElementById('myScript').src = url+ticker+extra;
}
function quote_search(json) {
var tickerSymbol = json.symbol
alert(tickerSymbol)
}
此提醒仅适用于我第一次点击我的按钮。我不确定我做错了什么。
alert(tickerSymbol)
答案 0 :(得分:2)
更改脚本标记的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)
}
}
答案 1 :(得分:1)
我认为分配脚本的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);
}