!(function() {

window.originalConsole = window.console

window.console = {}

var $ = function(selector) {

if (typeof selector == ‘string’) return document.querySelector(selector)

return selector

}

var var_dump = function(command, context, parents, n) {

if (!command || (typeof command == ‘string’ && command.length == 0))

return command

var context = context || window

var parents = parents || ”

var n = (n == 0 ? 0 : n) || 1

var startTime = new Date()

var line_count = 0

var thisFunction = arguments.callee

var text = ”

var obj = null

var isVisited = false

var fullname = ”

try {

obj = line_count == 0 ? eval.call(context, command) : command

} catch (e) {

return e

}

line_count == 0 && (thisFunction.historyArguments = [])

thisFunction.historyArguments.push(obj)

if (typeof obj == ‘string’) return ‘”‘ + obj + ‘”‘

if (typeof obj != ‘object’) return obj

if (obj && isArray(obj)) {

text =

‘[‘ +

(function() {

if (obj.length >= 2) {

return obj.reduce(function(preVal, curVal) {

return (

(function() {

if (typeof preVal != ‘object’) return preVal

return thisFunction(preVal, obj, ”, 0)

})() +

‘,’ +

(function() {

if (typeof curVal == ‘string’) return ‘”‘ + curVal + ‘”‘

if (typeof curVal != ‘object’) return curVal

return thisFunction(curVal, obj, ”, 0)

})()

)

})

} else if (obj.length == 1) {

return thisFunction(obj[0], obj, ”, 0)

} else {

return ”

}

})() +

‘]’

line_count++

return text

}

if (obj && typeof obj == ‘object’) {

if (n <= 0) return obj

for (i in obj) {

isVisited = thisFunction.historyArguments.indexOf(obj[i]) != -1

fullname = (parents != ” ? parents + ‘.’ : ”) + i

text +=

fullname +

‘: ‘ +

(function() {

if (typeof obj[i] == ‘string’) return ‘”‘ + obj[i] + ‘”‘

if (typeof obj[i] != ‘object’) return obj[i]

if (n <= 1) return obj[i]

if (isVisited) return obj[i]

return ‘\n’ + thisFunction(obj[i], obj, fullname, n – 1)

})() +

‘\n’

line_count++

}

return text

}

}

var t = (textarea = document.createElement(‘textarea’))

textarea.id = ‘yuan_console’

var first_line = ‘ —— from Yuanoook.com/console.log —— \n> ‘

textarea.val = function() {

if (arguments.length == 0) {

return textarea.value

} else {

textarea.value = arguments[0]

return textarea.ready()

}

}

textarea.

if (arguments.length == 1) {

if (typeof arguments[0] == ‘string’) return textarea.style[arguments[0]]

if (typeof arguments[0] == ‘object’) {

for (i in arguments[0]) {

textarea.style[i] = arguments[0][i]

}

return textarea

}

} else if (arguments.length == 2) {

textarea.style[arguments[0]] = arguments[1]

return textarea

}

}

textarea.attr = function() {

if (arguments.length == 1) {

if (typeof arguments[0] == ‘string’)

return textarea.getAttribute(arguments[0])

if (typeof arguments[0] == ‘object’) {

for (i in arguments[0]) {

textarea.setAttribute(i, arguments[0][i])

}

return textarea

}

} else if (arguments.length == 2) {

textarea.setAttribute(arguments[0], arguments[1])

return textarea

}

}

textarea.appendTo = function() {

$(arguments[0]).appendChild(textarea)

return textarea

}

textarea.on = function() {

var events = arguments[0].split(‘ ‘)

var handler = arguments[1]

events.forEach(function(event) {

textarea.addEventListener(event, handler)

})

return textarea

}

textarea.write = function(params) {

return textarea

.val(

(function() {

if (t.value.length == t.selectionEnd) return t.value

return (

t.value.substring(0, t.selectionStart).replace(/\n$/, ”) +

t.value.substring(t.selectionStart)

)

})().replace(/\n>\s$|\n$|$/, params.islog ? ‘\n ‘ : ‘\n< ‘) +

params.msg +

‘\n> ‘,

)

.ready()

}

textarea.clear = function() {

return textarea.val(first_line).ready()

}

textarea.absClear = function() {

return textarea.val(‘> ‘).ready()

}

textarea.fix = function() {

return textarea.val(t.value.replace(/\n$/, ”)).ready()

}

textarea.big = function() {

return textarea

.

top: 0,

width: ‘100%’,

height: ‘100%’,

})

.ready()

}

textarea.ready = function() {

textarea.selectionStart = textarea.selectionEnd = t.value.length

textarea.scrollTop = textarea.scrollHeight

textarea.focus()

return textarea

}

textarea.burger = function() {

textarea.

top: ‘33%’,

height: ‘33%’,

})

if (arguments.length == 1) {

textarea.

width: ‘50%’,

})

if (arguments[0] == ‘left’) {

return textarea

.css({

left: 0,

right: ‘50%’,

})

.ready()

} else if (arguments[0] == ‘right’) {

return textarea

.css({

left: ‘50%’,

right: 0,

})

.ready()

}

}

return textarea

.css({

width: ‘100%’,

left: 0,

right: 0,

})

.ready()

}

textarea.small = function() {

return textarea.css({

left: 0,

top: ‘47%’,

width: ‘100px’,

height: ’15px’,

})

}

textarea.init = function() {

textarea.n = 1

return textarea

.css({

position: ‘fixed’,

left: 0,

border: 0,

outline: ‘none’,

background: ‘black’,

color: ‘white’,

fontFamily:

‘Consolas,Liberation Mono,Menlo,Courier,Microsoft Yahei,monospace’,

zIndex: 100000000000,

})

.burger()

.clear()

.appendTo($(‘body’))

.ready()

}

textarea.on(‘keyup’, function(event) {

if (event.keyCode != 13 && event.keyCode != 8) return

var command, result

var n = textarea.n

if (event.keyCode == 13) {

command = (function() {

return (

(function() {

var subCommand = t.value

.substring(0, t.selectionStart)

.match(/>\s([^\n]*?)\n$/)

return subCommand ? subCommand[1] : ”

})() +

(function() {

var subCommand = t.value.substring(t.selectionStart).match(/^(.*)/)

return subCommand ? subCommand[1] : ”

})()

).replace(/^\s*|\s*$/g, ”)

})()

if (command == ”) {

textarea.fix()

return

} else if (command == ‘,’) {

textarea.absClear()

return

} else if (command == ‘;’) {

textarea.small().val(t.value.replace(/;\n$/, ”))

return

} else if (command == ‘;;’) {

textarea.big().val(t.value.replace(/;;\n$/, ”))

return

} else if (command == ‘;;;’) {

textarea.burger().val(t.value.replace(/;;;\n$/, ”))

return

} else if (command == ‘;;;;’) {

textarea.burger(‘left’).val(t.value.replace(/;;;;\n$/, ”))

return

} else if (command == ‘;;;;;’) {

textarea.burger(‘right’).val(t.value.replace(/;;;;;\n$/, ”))

return

} else if (

command.replace(/;$/, ”) == ‘clear()’ &&

typeof clear == ‘undefined’

) {

textarea.clear()

return

} else if (/^\?/.test(command)) {

n = Math.abs(parseInt(command.replace(/^\?/, ”)))

textarea.n = n == 0 ? 0 : n ? n : 1

textarea.val(t.value.replace(/\n$/, ‘\n> ‘))

console.log(‘—— export deepness: ‘ + textarea.n + ‘ —–‘)

return

} else if (isUrl(command)) {

insertScript(command)

return

}

result = var_dump(command, window, ”, textarea.n)

if (typeof result == ‘string’)

result = result.replace(/\n*$/, ”).replace(/\n/g, ‘\n ‘)

textarea.write({

msg: result,

islog: false,

})

} else if (event.keyCode == 8) {

}

})

textarea.on(‘resize’, textarea.ready)

window.console.log = function(msg) {

if (arguments.length == 0) return

textarea.write({

msg: (function() {

if (typeof msg == ‘string’) return msg

else msg = var_dump(msg)

return typeof msg == ‘string’ ? msg.replace(/\n([^\s])/g, ‘\n $1’) : msg

})(),

islog: true,

})

originalConsole.log(msg)

}

window.console.clear = function() {

textarea.clear()

textarea.write({

msg: ‘Console was cleared’,

islog: true,

})

originalConsole.clear()

}

function isArray(obj) {

return Object.prototype.toString.call(obj) === ‘[object Array]’

}

function isUrl(url) {

return /^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i.test(

url,

)

}

function insertScript(url, callback) {

var script = document.createElement(‘script’)

script.src = url

script.addEventListener(‘load’, function() {

console.log(url + ‘ 准备就绪!’)

callback && callback()

})

$(‘body’).appendChild(script)

}

if (document.readyState == ‘complete’) textarea.init()

else

document.addEventListener(‘readystatechange’, function() {

if (document.readyState != ‘complete’) return

textarea.init()

})

window.addEventListener(‘resize’, textarea.ready)

window.addEventListener(‘error’, function(e) {

console.log(e)

})

})()

移动端网页打印代码_WEB移动端怎么是实现Console.log打印相关推荐

  1. JS高级群的日常!写一个从10到0的倒计时,用console.log打印,不可以用 setInterval!本来说好的研究avalonJS最后演变成了看着大神在那边互相比拼实力。。...

    JS高级群的日常!写一个从10到0的倒计时,用console.log打印,不可以用 setInterval!本来说好的研究avalonJS最后演变成了看着大神在那边互相比拼实力.. 小森 执行一个函数 ...

  2. console.log打印:自定义样式(含源码、效果图)

    console.log打印:自定义样式(含源码.效果图) 效果图 · 示下: 案例 · 代码如下: 使用说明: 真的可以实现控制台打印出来的内容:有不同的font-size.不同的color.不同的渐 ...

  3. console.log 打印与预期结果不同

    以前写笔记都是在写本地Typora.跟朋友交流后,决定还是应该写在博客跟大家交流. 之前遇到过一个场景,console.log 打印与预期结果不同,见下. let users = [{ name: & ...

  4. 什么?console.log打印出的数据不对?

    背景 都怪我年轻不懂事,调试代码只会用console.log.那么,就在今天,出事儿了! 看图说话.上面的111和222后面跟的数据竟然不一致? 在我的认知中,JSON里面的parse和stringi ...

  5. 解决console.log打印对象时出现省略号的情况

    大家在调用接口时,是不是总会遇到当使用console.log()打印接口返回的数据时, 控制台会把对象的值用省略号隐藏住,要看还要一个个去点击,这就相当难受了,就像下面那样. 所以,在这分享个小技巧, ...

  6. 解决console.log打印对象时出现大量省略号问题,以及控制台使用表格方式查看打印数据

    在调用接口时,总要使用console.log()打印接口返回的数据, 这时控制台会把对象的值用省略号隐藏住,要看还要一个个去点击,很麻烦,比如 所以,要想默认输出就展开所有内容,只需要把输出的对象或者 ...

  7. javascript篇-console.log()打印object却显示为字符串[object object]

    console.log打印对象遇到的一个问题,如下截图 打印结果与预期不符,原因是因为字符串'a'和对象object拼接在一起,拼成了一个字符串 转载于:https://www.cnblogs.com ...

  8. console.log打印没有效果

    今天用谷歌调试的时候,遇到了一个很奇怪的现象,console.log() 完全不出效果,把它放到script下的第一行也没有用.然后借鉴了几个博主的. 直接改 https://blog.csdn.ne ...

  9. Angular使用Console.log()打印出来的数据没问题,点击详情后数据变了

    我在一个界面添加数据使用updataEvent将对象返回给另一个界面后,在onUpData中处理时使用 this.xxxxx= d,直接将地址值给了变量,当这个方法结束后d被重置了,所以this.xx ...

最新文章

  1. bool函数_有趣的函数绝无仅有
  2. Facebook又放大招!开源框架Pythia让深度学习更高效
  3. 成功解决ValueError: DataFrame.dtypes for label must be int, float or bool
  4. nginx随机变换图片服务器网址来防止盗链
  5. Android---Service(生命周期、启动方式、服务通信、实战演练、思维导图、高级音乐播放器-源码)
  6. 记一次糟心的内网靶场实战
  7. 一个脚本实现全量增量备份,并推送到远端备份中心服务器
  8. linux常用解压和压缩文件的命令
  9. 乱七八糟的,mark的东西...
  10. 计算机辅助设计技术案例,【智能科技学院】学院前沿技术运用课程组开展“计算机辅助设计”专题讲座...
  11. CSDN Markdown帮助文档
  12. visual studio使用小技巧(以vs2012为例)
  13. Python进阶练习题,新手快码起来
  14. “VMRC控制台的连接已断开…正在尝试重新连接”的解决方法
  15. Sonar插件的安装与使用详解
  16. 最全面计算机英语单词列表(一)
  17. 常见linux软件下载地址
  18. 【第8题】求 s=a+aa+aaa+aaaa+aa...a 的值
  19. postman设置为中文
  20. CTR预估 论文精读(十七)--ESMM: Entire Space Multi-Task Model

热门文章

  1. 断言(assert)详解
  2. 网页服务器知识,HTML网页服务器的知识点
  3. linux 开机启动文件夹,Linux开机启动流程
  4. 【CSDN】图片居中与调整大小
  5. [云炬创业基础笔记]第九章企业的法律形态测试4
  6. [云炬ThinkPython阅读笔记]1.6 形式语言和自然语言
  7. 科大星云诗社动态20210222
  8. 二十二、“此生无悔入华夏,来世还在种花家”(2021.7.1)
  9. 吐血整理!这可能是最全的机器学习工具手册
  10. C++类内存分布——深度理解继承与虚函数