一款切换浏览器useragent的扩展插件

插件名字为 User-Agent Switcher

ID : dbclpoekepcmadpkeaelmhiheolhjflj

一款切换浏览器useragent的扩展插件_第1张图片

 此插件的一个优点是修改ua之后,所有页面的ua都会改变,页面刷新之后还是修改后的值。

通过研究插件源码得知其原理是在页面加载之前进行js注入,修改ua的地方是一个prompt弹窗,

var action = function (top, urls) {
  if (!top) return true;
  if (urls.indexOf('*') !== -1) return true;
  if (urls.indexOf('all_urls') !== -1) return true;
  /*  */
  for (var i = 0; i < urls.length; i++) {
    var url = urls[i];
    if (url === top) return true;
    else if (top && top.indexOf(url) !== -1) return true;
  }
  return false;
};
background.receive("storage", function (data) {
  var top = data.top, urls = data.url.replace(/\s+/g, '').split(",");
  if (data.useragent) { // 判断ua是否存在
    if (action(top, urls)) { //action函数判断url是否变化
      var script = document.getElementById("useragent-switcher"); //获取script标签
      if (script) script.parentNode.removeChild(script); //如果页面script标签存在,则删除
      script = document.createElement("script"); //创建script标签
      script.setAttribute("type", "text/javascript");
      script.setAttribute("id", "useragent-switcher");
      script.textContent = 'navigator.__defineGetter__("userAgent", function() {return "' + data.useragent + '"})'; // 传入修改后的ua
      document.documentElement.appendChild(script);
    }
  }
});

在控制台使用window.navigator.userAgent查看ua或者修改ua,使用window.navigator.userAgent在控制台赋值ua,刷新页面之后修改的ua不见了

 

 

你可能感兴趣的:(pyppeteer)