D1D1D1D
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Следующая кнопка по нажатию сохраняет всю страницу в MHT формат, а по удержанному нажатию выделенная часть страницы сохраняется в HTML со стилями: Код: Button26, "Save current page"="Save document As, , , "Save current page to MHT / Save selected content with CSS (hold)", "Save document" + Go to page, "javascript:(function(){var selWin=function(w){if(w.getSelection().toString())return w;for(var i=0,f,r;f=w.frames[i];i++){try{if(r=arguments.callee(f))return r}catch(e){}}};var ele,pEle,clone;var doc=window.document,loc=window.location;var win=selWin(window);if(win){var r=win.getSelection().getRangeAt(0);pEle=r.commonAncestorContainer;ele=r.cloneContents();doc=win.document;loc=win.location}else{pEle=doc.documentElement;ele=(doc.body||doc.getElementsByTagName('body')[0]).cloneNode(true)};while(pEle){if(pEle.nodeType==1){clone=pEle.cloneNode(false);clone.appendChild(ele);ele=clone};pEle=pEle.parentNode};var sel=doc.createElement('div');sel.appendChild(ele);var scripts=sel.getElementsByTagName('script');for(var i=scripts.length;i--;){scripts[i].parentNode.removeChild(scripts[i])};var head=ele.insertBefore(doc.createElement('head'),ele.firstChild);var meta=doc.createElement('meta');meta.httpEquiv='content-type';meta.content='text/html; charset=utf-8';head.appendChild(meta);var tEle=doc.getElementsByTagName('title')[0];if(tEle)head.appendChild(tEle.cloneNode(true));var bEle=doc.getElementsByTagName('base')[0];var base=bEle?bEle.cloneNode(false):doc.createElement('base');if(!base.href&&loc.protocol!='data:')base.href=loc.href;head.appendChild(base);var styles=doc.styleSheets;for(var i=0,si;si=styles[i];i++){var style=doc.createElement('style');style.type='text/css';if(si.media.mediaText)style.media=si.media.mediaText;try{for(var j=0,rule;rule=si.cssRules[j];j++){style.appendChild(doc.createTextNode(rule.cssText+'\n'))}}catch(e){if(si.ownerNode)style=si.ownerNode.cloneNode(false)};head.appendChild(style)};var doctype='',dt=doc.doctype;if(dt&&dt.name){doctype+='<!DOCTYPE '+dt.name;if(dt.publicId)doctype+=' PUBLIC \x22'+dt.publicId+'\x22';if(dt.systemId)doctype+=' \x22'+dt.systemId+'\x22';doctype+='>\n'};loc.href='data:text/phf;charset=UTF-8,'+encodeURIComponent(doctype+sel.innerHTML+'\n<!-- This document saved from '+(loc.protocol!='data:'?loc.href:'data:uri')+' -->')})();"" | Можно ли заменить в ней функцию сохраниния в MHT — функцией следующей кнопки, сохраняющей выделенное без CSS — Код: Button60, "Сохранить выделенную часть страницы"="Go to page, "javascript:(function(){var link=location.href;var settings=document.createComment(' QSaver settings /format=phf /method=simple /url=‘‘'+link+' ');var title=document.title;var styles=document.styleSheets;var base=document.getElementsByTagName('base')[0];var body=document.body||document.getElementsByTagName('body')[0]||document.documentElement;var ele,ref,clone;var sel=document.createElement('div');var s=window.getSelection();if(s!=''){var r=s.getRangeAt(0);ele=r.commonAncestorContainer;ref=r.cloneContents()}else{ele=body.parentNode;ref=body.cloneNode(true)};while(ele){if(ele.nodeType==1){clone=ele.cloneNode(false);clone.appendChild(ref);ref=clone};ele=ele.parentNode};sel.appendChild(ref);var scripts=sel.getElementsByTagName('script');for(var i=scripts.length-1;i>=0;i--){scripts[i].parentNode.removeChild(scripts[i])};try{var h=sel.firstChild.insertBefore(document.createElement('head'),sel.firstChild.firstChild);h.appendChild(settings);if(title){t=document.createElement('title');t.text=title;h.appendChild(t)};var meta=document.createElement('meta');meta.httpEquiv='content-type';meta.content='text/html; charset=utf-8';h.appendChild(meta);var b=base?base.cloneNode(false):document.createElement('base');if(!b.href)b.href=link;h.appendChild(b);for(var i=0,si;si=styles[i];i++){var style=document.createElement('style');style.type='text/css';if(si.media.mediaText)style.media=si.media.mediaText;for(var j=0,rule;rule=si.cssRules[j];j++){style.text+=rule.cssText+'\n'};h.appendChild(style)}}catch(e){};location.href='data:text/phf;charset=UTF-8,'+encodeURIComponent(sel.innerHTML+'\n<!-- This document saved from '+link+' -->')})();", , , "Save document"" | т.е. чтобы одна кнопка по короткому клику сохраняла выделенное без стилей, а по долгому — со стилями? | Всего записей: 1435 | Зарегистр. 05-04-2010 | Отправлено: 17:12 16-05-2014 | Исправлено: D1D1D1D, 17:15 16-05-2014 |
|