2009-06-08 3 views
1

이 스크립트가 작동하지 않는 이유는 무엇입니까?jQuery 변수 (iframe 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에 삽입합니다. 왜 작동하지 않는거야?

또한이 목적을 달성하는 더 좋은 방법이 있습니까?

iframe은 쓰레기지만, 지금 당장은 간단하게하고 싶습니다.

+2

? 별도의 변수로 URL을 만들고 미리 경고()하면 예상대로 표시됩니까? Firebug에서 js 오류가 발생하고 있습니까 (Firebug를 사용하고 있습니까?). – inkedmn

+0

정확히 무슨 일이 일어나고 있습니까? ISBN이 값을 반환합니까, 아니면 IFrame에서 가리키는 URL이 GET 매개 변수를 전혀 갖고 있지 않습니까? – Ballsacian1

답변

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

나는 그것이 그와 같이 명백한 무엇인가 알고 있었다. 감사! – peehskcalba

0

왜 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);