2012-05-13 2 views
15

그리스 몽키 스크립트를 만들고 있는데 URL을 표시하지 않고 스크립트에 포함 된 일부 HTML을 표시하려는 새 탭을 열고 싶습니다. 그래서 기본적으로 나는 (분명히 작동하지 않습니다) 이런 일을하고 싶지 :URL 대신 사용자 정의 HTML을 사용하여 새 탭을 엽니 다.

window.open('<html><head></head><body></body></html>'); 
or 
GM_openInTab('<html><head></head><body></body></html>'); 

어떤 힌트를 환영합니다!

+0

나는 ('nonexistingURL') window.open을 할 수 있어야한다고 생각합니다. 새 탭은 브라우저 기본값 "페이지를 찾을 수 없습니다"와 함께 열립니다. 존재하지 않는 URL에서 GM 스크립트를 실행할 수 있어야합니다. 나는 그것을 시도 할 것이다 ... –

답변

35

당신은이 작업을 수행 할 수 있습니다

var newWindow = window.open();

을 다음 다른 대답은 당신에게 Error: Permission denied to access property "document"을 제공하는 경우

newWindow.document.write("ohai");

+0

고마워, 당신이 새로운 창문에 쓸 수 있는지 모르겠다. –

+0

나를 위해 작동하지 않는다, 새로운 탭이 열린다. 그러나 그것과 함께 비어있다 : 주소 행의 공백 :-(. – Blackhex

+0

나는 생각한다. 이것은 기본 (안전하지 않은) 브라우저 윈도우에서'window.open' 호출로 변환됩니다. 그래서 당신이보고있는 페이지에서 새로 열어 진 윈도우를 스크립트에 액세스 할 수있게됩니다. (그래서 GM_openInTab 함수가 모든 것을 막기 위해) – Doin

6

는, 동일 출처 정책 문제를 처리하는 방법에 대한 this question를 참조 할, 또는 this one. 신속하고 더러운

또는, 데이터 URI를 사용

var html = '<html><head></head><body>ohai</body></html>'; 
var uri = "data:text/html," + encodeURIComponent(html); 
var newWindow = window.open(uri); 
+1

거의 필요없고 대부분의 경우 문제를 해결하는 더 좋은 방법이 있습니다. "액세스가 거부 된 권한의 문서 t "오류가 발생했습니다. http://stackoverflow.com/questions/7995223/, http://stackoverflow.com/questions/22481340/ 등 – paulsm4

+1

정확한 답변을 내 대답에 편집했습니다. 일부는 댓글에 너무 많이 사용됩니다. – Noumenon

관련 문제