اسكريپتي براي حذف Header و Footer در پرينت صفحات وب داريد؟

Aftabgardan-cc

Active Member
سلام؛

همونطور كه مي‌دونيد،‌موقع پرينت از يك صفحه وب، در هدر اون اسم و آدرس صفحه و در فوتر نمي‌دونم تاريخ و ... پرينت مي‌شه...

من يه اسكريپت مي‌خوام كه اين‌ها رو موقع پرينت حذف كنه!

البته مي‌دونم مي‌شه از طريق منوي فايل، اين كار رو كرد، اما به دليل مشخصي، مي‌خوام با اسكريپت اين كار رو انجام بدم...


ممنون مي‌شم راهنمايي بفرماييد.
 

darvin_lasari

New Member
پاسخ به خواسته خودت

سلام
من اون سايتي که گفته بودي مطالعه کردم
تو براي اينکه اين کارو بکني و از کدهايي که تو اون سايت نوشته استفاده بکني بايد قلش ActiveX رو از اون سايت download و نصب کني که اينم يه ريسکه ببين ميارزه اين کارو بکن
موفق باشي
 

sajjad_eb

Well-Known Member
البته من منظور شمارو کامل متوجه نشدم . از بس ستاره گزاشتی :wink: :D
اما اینو میدونم که با فایرفاکس و چنتا اکستشن می تونید صفحه مورد نظر رو Customize کنید و با چنتا کلیک ساده یه سری کد javascript بسازید که مثلا یه قسمتی حذف بشه . یا Style قسمتی رو عوض کنید و ... .
بعد از اون صفحه print بگیرید
مثلا برای از بین بردن header و sidebar وبلاگ یک پزشک کد زیر تولید شده

کد:
// ==UserScript==
// @name            Platypus-1pezeshk.com/
// @namespace       Platypus
// @include         http://1pezeshk.com/
function do_platypus_script() {
erase_it(window.document,document.evaluate('/HTML[1]/BODY[1]/DIV[1]/P[1]/IMG[1]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,null,null,null);
erase_it(window.document,document.evaluate('/HTML[1]/BODY[1]/DIV[1]/DIV[2]/DIV[1]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,null,null,null);
}; // Ends do_platypus_script
window.addEventListener("load", function() { do_platypus_script() }, false);
//
//  Mon Dec 19 15:59:37 2005 -- Scott R. Turner
//  Short, uncommented file containing all the code to implement Platypus
//  actions.  Can be "included" into the Platypus script.
//
// 
// 
function walk_down(node, func) {
  if (node.nodeType == 1) {
    if (node.tagName != "IMG") func(node);
    if (node.childNodes.length != 0)
      for (var i=0; i<node.childNodes.length; i++)
walk_down(node.childNodes.item(i),func);
  }
}
function make_bw(doc, node) {
  walk_down(node,
            function (node) {
      if (node.tagName != 'A') {
  node.bgcolor = "white";
  node.color = "black";
  node.style.backgroundColor = "white";
  node.style.color = "black";
  node.style.backgroundImage = "";
      }});
}
function center_it(doc, node) {
  var center_node = doc.createElement ("CENTER");
  node.parentNode.insertBefore(center_node, node);
  node.parentNode.removeChild(node);  
  center_node.appendChild(node);
  return center_node;
};
function erase_it(doc, node) {
  var offset_height = node.offsetHeight;
  var offset_width = node.offsetWidth;
  var replacement_div = doc.createElement ("DIV");
  replacement_div.setAttribute('style',
       "height: "+offset_height+"; width: "+offset_width+";");
  node.parentNode.insertBefore(replacement_div, node);
  node.style.display = "none";
  return replacement_div;
};
function smart_remove(doc, node) {
    if (node.parentNode.childNodes.length == 1) {
smart_remove(doc, node.parentNode);
    } else {
remove_it(doc, node);
    };
};
function remove_it(doc, node) {
  if (doc == null || node == null) return;
  if (!node.parentNode) return;
  node.style.display = "none";
  doc.last_removed_node = node;
};
function script_paste(doc, where, what) {
    var new_node = what.cloneNode(true);
    new_node.style.display = "";
    where.parentNode.insertBefore(new_node, where);
};
function isolate(doc, node) {
  if (!node.parentNode) return;
  node.parentNode.removeChild(node);
  while (doc.body.childNodes.length > 0) {
    doc.body.removeChild(doc.body.childNodes[0]);
  };
  var replacement_div = doc.createElement ("DIV");
  replacement_div.setAttribute('style',
       "margin: 0 2%; text-align: left");
  replacement_div.appendChild(node);
  doc.body.appendChild(replacement_div);
};
function set_style_script(doc, element, new_style) {
    element.setAttribute('style', new_style);
};
function modify_single_url(doc, match_re, replace_string, node) {
    if (node.href) {
node.href = node.href.replace(match_re, replace_string);
    };
};
function do_modify_url_it(doc, node, match_re, replace_string, global_flag) {
    match_re = new RegExp(match_re);
    if (global_flag) {
var allurls = doc.getElementsByTagName('A');
for(var i = 0, url; url = allurls[i]; i++)
  modify_single_url(doc, match_re, replace_string, url);
    } else {
modify_single_url(doc, match_re, replace_string, node);
    };
};
function do_modify_html_it(doc, element, match_re, replace_string) {
    match_re = new RegExp(match_re);
    if (element.innerHTML) {
element.innerHTML = element.innerHTML.replace(match_re, replace_string);
    };
};
function relax(doc, node) {
  walk_down(node, function (node) {
      node.style.width = 'auto';
      node.style.marginLeft = '0pt';
      node.style.marginRight = '0pt';
      if (node.width) node.width = null; });
}
function fix_page_it(doc, node) {
    doc.background = null;
    doc.bgColor = "white";
    if (doc.style) {
      doc.style.backgroundColor = "white";
      doc.style.backgroundImage = "none";
      if (doc.style.color == "white") {
doc.style.color = "black";
      };
      if (doc.text == "white") {
doc.text = "black";
      };
    };
    doc.body.background = null;
    doc.body.bgColor = "white";
    if (doc.body.style) {
      doc.body.style.backgroundColor = "white";
      doc.body.style.backgroundImage = "none";
      if (doc.body.style.color == "white") {
doc.body.style.color = "black";
      };
      if (doc.body.text == "white") {
doc.body.text = "black";
      };
    };
};
function insertAfter(newNode, target) {
    var parent = target.parentNode;
    var refChild = target.nextSibling;
    if(refChild != null)
parent.insertBefore(newNode, refChild);
    else
parent.appendChild(newNode);
};
function html_insert_it(doc, element, new_html, before, insert_as_block) {
  var new_element;
  if (insert_as_block) {
    new_element = doc.createElement ("DIV");
  } else {
    new_element = doc.createElement ("SPAN");
  };
  new_element.innerHTML = new_html;
  if (before) {
      element.parentNode.insertBefore(new_element, element);
  } else {
      insertAfter(new_element, element);
  };
};
function auto_repair_it(doc, node) {
  var biggest_elem = find_biggest_elem(doc);
  isolate(doc, biggest_elem);
  relax(doc, biggest_elem);
  make_bw(doc, biggest_elem);
  fix_page_it(doc, biggest_elem);
};
function find_biggest_elem(doc) {
  const big_element_limit = 0.25;
  var size_of_doc = doc.documentElement.offsetHeight *
      doc.documentElement.offsetWidth;
  var body = doc.body;
  var size_of_body = body.offsetHeight * body.offsetWidth;
  if (size_of_body < (0.80 * size_of_doc)) {
      size_of_body = size_of_doc;
  };
  var max_size = 0;
  var max_elem = doc;
  var allElems = document.evaluate("//*",
 doc.body, null,
 XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
 null);
  for (var i = 0; i < allElems.snapshotLength; i++) {
    var thisElem = allElems.snapshotItem(i);
    var thisElem_size = thisElem.offsetHeight * thisElem.offsetWidth;

    if (thisElem_size < size_of_body &&
thisElem_size > max_size &&
!contains_big_element(thisElem, size_of_body * big_element_limit)) {
      max_size = thisElem_size;
      max_elem = thisElem;
    };
  };
  return max_elem;
};

function contains_big_element(node, limit) {
    if (node.childNodes.length != 0)
for (var i=0; i<node.childNodes.length; i++) {
    var child = node.childNodes.item(i);
    var child_size = child.offsetHeight * child.offsetWidth;
    if (child_size > limit) return true;
};
    return false;
};

function platypus_do(win, func_name, o, other, other2, other3) {
    var func = eval(func_name);
    var doc = null;
    if (func == null) return;
    if (!o) {
Warning("Platypus couldn't find a page element when executing the command "+
func_name+".  This usually happens when running a script -- maybe the"+
" web page the script is running on has changed.");
    };
    doc = win.document;
    func(doc, o, other, other2, other3);
};
//.user.js
 

Aftabgardan-cc

Active Member
سلام؛
آقا ممنون، بايد يه بررسي كنم، چون فكر كنم خيلي از تابع*هاش اضافه باشه! آخه يه فوتر و هدر كه اينهمه كد نمي*خواد :(
ضمن اينكه اين مشكل رو به طريقي ديگه حل كرديم!
اگه الان شما از منوي File گزينه Print Preview رو بزني و در اونجا Page Setup رو كليك كني، مي*توني تنظيم كني كه در هدر و فوتر چي نوشته بشه!
اگه اون فيلدها رو خالي بذاري، يعني اينكه هيچي در هدر و فوتر پرينت نشه و اين تنظيمات براي هميشه روي سيستم اعمال مي*شه.
من فكر مي*كردم هر بار بايد تنظيم كني، به همين خاطر خواستم "صفحه" رو بدون هدر و فوتر تنظيم كنم، در حالي كه نه، تنظيمات، دائمي هستند :wink:

به هر حال از لطفتون ممنون...

راستي، اون ستاره*ها به خاطر استفاده از Shift+Space هست كه فعلا انگار قالب جديد سازگار نشده، به مدير اطلاع دادم كه پيگيري كنن...

با اجازه.
 

جدیدترین ارسال ها

بالا