2013-01-10 4 views
4

이것은 jQuery 북마크릿을 작성하기 위해 찾은 스크립트이며 3 줄의 코드를 추가했습니다. 문제는 jQuery 코드가 (선택자를위한) 따옴표를 많이 가지고 있으며, 북마크를 href = "javascript : code"에 넣어야하므로 href의 큰 따옴표로 모든 내용이 엉망이된다. 여기 내 코드가 어떻게 생겼는지 여러모로 큰 따옴표를 벗어나려고했지만 아무도 작동하지 않았습니다. 이 문제를 해결할 방법이 있습니까? 구문 에러 :북마크 렛에서 따옴표를 처리하는 방법

<a href="javascript:(function(){ 

// the minimum version of jQuery we want 
var v = '1.3.2'; 

// check prior inclusion and version 
if (window.jQuery === undefined || window.jQuery.fn.jquery < v) { 
    var done = false; 
    var script = document.createElement('script'); 
    script.src = 'http://ajax.googleapis.com/ajax/libs/jquery/' + v + '/jquery.min.js'; 
    script.onload = script.onreadystatechange = function(){ 
     if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) { 
      done = true; 
      initMyBookmarklet(); 
     } 
    }; 
    document.getElementsByTagName('head')[0].appendChild(script); 
} else { 
    initMyBookmarklet(); 
} 

function initMyBookmarklet() { 
    (window.myBookmarklet = function() { 
     // your JavaScript code goes here! 
     var loc=window.location; 
     $('body').append('<form id=\'IDform\' action=\'http:/pourid.3eeweb.com/read.php\' method=\'post\' ><input name=\'url\' type=\'text\' value=\''+loc+'\' /></form>'); 
     $('#IDform').submit(); 
    })(); 
} 

})();">bookmarklet</a> 


내가 북마크 링크를 클릭하면, 불을 지르고는 말한다 실종} 함수 본문
이후하지만 난 단지 자바 스크립트를 실행하는 경우는 잘 실행 (HTML 링크를 사용하지 않음).

+0

가장 쉬운 솔루션을 같이 할 필요가

파일을 추가 북마크를 외부 JS 파일에 코드를 넣어하는 것입니다 블록 주석 할 필요가 페이지로 – epascarello

+0

실제로 HTML 코드에서 줄 바꿈을 사용하고 있습니까? 아니면 예쁜 요소를 위해 여기에 있습니까? – epascarello

+0

현재 스크립트에서 코드에서 큰 따옴표 (HTML 속성을 구분하는 데 사용)를 사용하지 않으므로 책갈피 렛의 따옴표에 문제가 없습니다. 그러나 문제는 주석과 개행입니다. – MrWhite

답변

3

당신은 속성의 // 의견이나 줄 바꿈을 가질 수 없습니다. 하나의 긴 문자열이어야합니다.

당신이 의견을 원하는 경우

, 그것은 /*foo*/ 그것은

<a href="javascript:document.body.style.color='red';alert('no line breaks');void(0);">foo</a> 
4

이 작업을 수행하는 데는 두 가지 방법이 있습니다. 하나는 따옴표로 HTML을 이스케이프 처리하는 것입니다. &quot; 또는 &#34;"이고, &#39;'입니다.

다른 방법으로는 자바 스크립트에서 북마크릿을 문자열로 입력하고로드시 <a>에 첨부하는 것이 좋습니다. 즉, HTML 관련 문제가 없어 브라우저에서 모든 작업을 수행 할 수 있습니다. 저장하면 인코딩이됩니다.

또한 sbmaxx이 지적되었으므로 // 개의 댓글을 삭제해야 할 수 있습니다. 이는 URI에 줄 바꿈이 없으므로 한 줄에 입력해도 주석이 끝나지 않기 때문입니다.

0

그냥 의견을 코드에서 //을 삭제하고 작동합니다)

관련 문제