2009-06-08 27 views
1

爲什麼這個腳本不工作?作爲iframe的jQuery變量URL

$(function() { 
    var isbn = $('input').val(); 
    $('button').click(function() { 
     $("#data").html('<iframe height="500" width="1000" src="http://books.google.com/books?vid=ISBN' + isbn + '" />'); 
    }); 
}); 

正如你所看到的,我試圖做一個非常簡單的ISBN查找字段用於演示網站。該腳本應該取得輸入的值並將其插入到URL中。爲什麼它不工作?

此外,有沒有更好的方法來完成這一目標?

當然,我意識到iframes是垃圾,但我現在只想保持簡單。

+2

什麼是不工作?如果您將URL作爲單獨的變量生成並提前(alert),它是否按照您的預期顯示?你是否從Firebug獲得了一個js錯誤(你*是使用Firebug的,對吧)? – inkedmn 2009-06-08 22:10:07

+0

究竟發生了什麼? ISBN是否返回一個值,或者IFrame指向的url是否沒有GET參數? – Ballsacian1 2009-06-08 22:14:10

回答

2

當你的代碼被稱爲目前尚不清楚,但就是這條線:

var isbn = $('input').val(); 

只在頁面加載時調用一次,而應該是點擊處理程序中:

$('button').click(function() { 
    var isbn = $('input').val(); 
    $("#data").html('<iframe height="500" width="1000" src="http://books.google.com/books?vid=ISBN' + isbn + '" />'); 
}); 
0

爲什麼不加載你想查看通過AJAX加載技術的頁面,所以取了HTML和元素中顯示它:

$(function() { 
    var isbn = $('input').val(); 
    $('button').click(function() { 
     $("#data").load('http://books.google.com/books?vid=ISBN' + isbn); 
    }); 
}); 
0

問題不在於您的代碼,而在於您擁有的查詢字符串。

請修改如下,它應該工作:

var isbn = "1603038159"; 

     $("#data").html('<iframe height="500" width="600" src="http://books.google.com/books?as_isbn=' + isbn);