2009-06-07 3 views

답변

2

Ajax를 사용하여 <div />으로로드하기 위해 다른 도메인의 데이터를 가져 오는 다른 페이지에서 북마크릿을 만드는 데 문제가있을 수 있습니다.

가장 좋은 방법은 콘텐츠가있는 IFrame을 페이지의 소스로 삽입하는 것입니다.

javascript: (function() { var iFrame = document.createElement('IFRAME'); iFrame.src = 'http://google.com'; iFrame.style.cssText = 'display: block; position:absolute; top: 10%; left: 25%; width: 50%; height: 50%'; document.body.insertBefore(iFrame, document.body.firstChild); })(); 

또한 수 : 북마크 형식으로 같은 코드가 여기

(function() { 

    var iFrame = document.createElement('IFRAME'); 

    iFrame.src = 'http://google.com'; 
    iFrame.style.cssText = 'display: block; position:absolute; ' 
         + 'top: 10%; left: 25%; width: 50%; height: 50%'; 

    document.body.insertBefore(iFrame, document.body.firstChild); 

})(); 

을 그리고 : 당신은 아주 기본적인 라이트 박스로이 작업을 수행하려면

, 당신이 뭔가를 할 수 있습니다 당신이 뭔가를 원한다면이 스타일을 훨씬 더 스타일링하십시오. 이것은 가능한 일의 기본적인 예일뿐입니다. 다른 사람들이 말했듯이, Ajax 요청을 사용하여 jQuery를로드하면 꽤 쉽게 만들 수 있지만, 좀 더 복잡하다.

1

북마크릿에서 직접 AJAX 호출을 수행 한 다음 div의 innerHTML을 반환 된 콘텐츠로 설정하십시오. 이것에 보안 제한이 있는지 여부는 확실하지 않습니다.

편집 : 북마크릿에서 자바 스크립트 라이브러리를 쉽게로드 할 수 없기 때문에 JQuery를 사용하고 싶지 않습니다. (아마도 AJAX를 통해 얻은 다음 평가 해보십시오 ...)

XMLHttpRequest을 수행해야합니다.

일부 more info here.

+1

어떻게? Jquery에 대한 많은 경험이 없습니다. 또한 다른 서버에서 파일을로드 할 수 있습니까? 즉, cnn.com에있는 경우 내 북마크릿이 example.com의 파일을로드 할 수 있습니까? – chris

1

The Dojo Toolkit으로 당신은 당신이 하나 개의 사업부에서 원하는 정확하게 할 dijit.layout.ContentPane 또는 dojox.layout.ContentPane를 사용할 수 있습니다.
dijit.layout.ContentPane과 dojox.layout.ContentPane의 차이점은 dojox.layout.ContentPane 내부에서 인라인 자바 스크립트를 실행할 수 있다는 것입니다.

0

다른 도메인의 페이지를 출력하는 내 서버에서 PHP 기능을 사용하여 도메인 제한 사항을 해결했습니다. 그런 식으로, javascript는 ajax.updater 호출을 할 때 같은 도메인에 있다고 생각합니다.

$ sSrcPage = $ _REQUEST [ 'SrcPage'];

echo file_get_contents ($ sSrcPage, 0);