js 浏览器局部打印img不显示

function print() {

		if (!!window.ActiveXObject || "ActiveXObject" in window) { //是否ie
			//设置网页打印的页眉页脚为空
			var hkey_root, hkey_path, hkey_key;
			hkey_root = "HKEY_CURRENT_USER";
			hkey_path = "\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";

			try {
				var RegWsh = new ActiveXObject("WScript.Shell")
				hkey_key = "header"
				RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "")
				hkey_key = "footer"
				RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "")
			} catch (e) {}
		}

		 bdhtml = window.document.body.innerHTML; //获取当前页的html代码  
		 sprnstr = ""; //设置打印开始区域  
		 eprnstr = ""; //设置打印结束区域  
		 prnhtml = bdhtml.substring(bdhtml.indexOf(sprnstr) + 18); //从开始代码向后取html  
		 prnhtml = prnhtml.substring(0, prnhtml.indexOf(eprnstr)); //从结束代码向前取html
		
		 window.document.body.innerHTML = prnhtml;
		
		window.print();
		location.reload();
	}

这种方式打印出来,img不显示。

解决的办法就是不用js截取html,采用css @media print控制实现局部打印,打印时给不需要打印的标签添加如下的样式

@media print {.noprint{display: none;}

 

 

你可能感兴趣的:(js)