웹 페이지의 모든 img 태그를 이미지에 포함 된 base64 인코딩 된 데이터로 바꾸려고합니다.여러 하위 도메인에서 이미지 데이터의 인라인 인코딩
로 표현되는 이미지 :
<img src="data:image/png;base64,iVBORw0KGg..." />
의 웹 페이지가 다수의 서브 도메인, 예를 들어, 이미지를 포함
<img src="http://a.example.com" />
로 변경 될 하나의 하위 도메인에
<img src="http://a.example.com" />
<img src="http://b.example.com" />
내가 사용할 수 있습니다 이미지가 HTML 페이지의 이외의 하위 도메인에있을 때
그러나var images = document.getElementsByTagName('img');
for(var i=0; i<images.length; i++){
var img = new Image();
img.src = images[i].src;
// Create canvas tag to represent img
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
var context = canvas.getContext("2d");
context.drawImage(img,0,0);
img.src = canvas.toDataURL("image/png");
$(images[i]).replaceWith(img);
}
가, 내가 얻을 :
Uncaught Error: SECURITY_ERR: DOM Exception 18
콘솔에 있습니다. 페이지에서이 작업을 수행하여 모든 이미지 참조를 해당 인코딩 된 데이터로 변환하려면 어떻게합니까?
페이지를 파싱하기 전에 일반적으로 백엔드에서 렌더링해야하는 항목입니다. 클라이언트 측에서이 작업을 통해 얻는 결과가 확실하지 않습니다. –
나는 백엔드를 제어하지 않는다. 웹 페이지를 단일 리소스로 절약하기 위해 클라이언트 측 솔루션을 만들려고합니다. –
javascript를 사용하여 DOM을 수정해도 HTML 소스가 실제로 변경되지 않으며 (스테이트리스이므로) 단일 진리 지점을 만들지 않습니다. –