2014-05-21 1 views
0

다른 스크립트에 의존하는 북마크릿을 작성하려고했습니다.HTML/JavaScript 스크립트 삽입 예외

function load(url, callback) { 
    var script = document.createElement('script'); 
    script.type = 'text/javascript'; 
    script.src = url; 
    script.async = false; 
    script.onload = callback; 
    document.head.appendChild(script); 
} 

콜백 함수는 대부분의 페이지에서 호출하지만, 일부 페이지에 내가 콘솔에서 다음 예외가 발생하고 스크립트가로드되지됩니다 (facebook.com은 하나입니다이를 위해 내 북마크는이 같은 기능을 포함 예). 0x80040111 (NS_ERROR_NOT_AVAILABLE)

알라 북마크 예 :

이 부품은 실패 코드를 반환

스크립트 : 함수 %의 20load (URL 콜백) {VAR의 %의 20script = 문서. load ('http://code.jquery.com/jquery-1.11.1.min.js', function() {console()}}}}}}}}}}}}}}}}}}}}}} .log ('로드 됨');})

저는 Ubuntu 12.04에서 FireFox 29를 사용합니다. 실행되면 "로드 됨"이 콘솔에 나타나야합니다. 첫 번째로드에서 자원에 대한 추가 액세스가 콘솔에 표시됩니다. 그러나 위에서 쓴 것처럼. facebook.com 전혀 아무 일도 일어나지 않습니다. 스크립트가로드되거나 콜백이 호출되지 않습니다.

+1

"일부 페이지"? 어떤 페이지? 이 문제를 재현하려면 무엇을해야합니까? –

+0

그것이 일어난 곳은 전에 내 질문에 적혀있었습니다. 아래에 같은 코드가있는 boorkmarklet을 추가했습니다. –

+0

그러면이 문제를 어떻게 재현 할 수 있습니까? 우리가 그것을 재현 할 수 있도록 우리를위한 단계를 작성하십시오. 서면으로, 당신은 우리에게 대본을 주었고, "이것은 효과가 없습니다."라고 말하면 그것은 우리에게 도움이되지 않습니다. 우리는 당신이 겪고있는 단계들을 통과 할 수 있어야합니다. 그래서 그 단계들은 무엇입니까? (이 질문을 귀하의 질문에 편집하십시오). –

답변

1

북마크릿 자체에서 XSS로 인해 발생했을 가능성이 큽니다. FF 35.0은 더 이상 오류가 없으며 올바른 형식의 메시지를 보여줍니다.