移动端网页打印代码_WEB移动端怎么是实现Console.log打印
!(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打印相关推荐
- JS高级群的日常!写一个从10到0的倒计时,用console.log打印,不可以用 setInterval!本来说好的研究avalonJS最后演变成了看着大神在那边互相比拼实力。。...
JS高级群的日常!写一个从10到0的倒计时,用console.log打印,不可以用 setInterval!本来说好的研究avalonJS最后演变成了看着大神在那边互相比拼实力.. 小森 执行一个函数 ...
- console.log打印:自定义样式(含源码、效果图)
console.log打印:自定义样式(含源码.效果图) 效果图 · 示下: 案例 · 代码如下: 使用说明: 真的可以实现控制台打印出来的内容:有不同的font-size.不同的color.不同的渐 ...
- console.log 打印与预期结果不同
以前写笔记都是在写本地Typora.跟朋友交流后,决定还是应该写在博客跟大家交流. 之前遇到过一个场景,console.log 打印与预期结果不同,见下. let users = [{ name: & ...
- 什么?console.log打印出的数据不对?
背景 都怪我年轻不懂事,调试代码只会用console.log.那么,就在今天,出事儿了! 看图说话.上面的111和222后面跟的数据竟然不一致? 在我的认知中,JSON里面的parse和stringi ...
- 解决console.log打印对象时出现省略号的情况
大家在调用接口时,是不是总会遇到当使用console.log()打印接口返回的数据时, 控制台会把对象的值用省略号隐藏住,要看还要一个个去点击,这就相当难受了,就像下面那样. 所以,在这分享个小技巧, ...
- 解决console.log打印对象时出现大量省略号问题,以及控制台使用表格方式查看打印数据
在调用接口时,总要使用console.log()打印接口返回的数据, 这时控制台会把对象的值用省略号隐藏住,要看还要一个个去点击,很麻烦,比如 所以,要想默认输出就展开所有内容,只需要把输出的对象或者 ...
- javascript篇-console.log()打印object却显示为字符串[object object]
console.log打印对象遇到的一个问题,如下截图 打印结果与预期不符,原因是因为字符串'a'和对象object拼接在一起,拼成了一个字符串 转载于:https://www.cnblogs.com ...
- console.log打印没有效果
今天用谷歌调试的时候,遇到了一个很奇怪的现象,console.log() 完全不出效果,把它放到script下的第一行也没有用.然后借鉴了几个博主的. 直接改 https://blog.csdn.ne ...
- Angular使用Console.log()打印出来的数据没问题,点击详情后数据变了
我在一个界面添加数据使用updataEvent将对象返回给另一个界面后,在onUpData中处理时使用 this.xxxxx= d,直接将地址值给了变量,当这个方法结束后d被重置了,所以this.xx ...
最新文章
- bool函数_有趣的函数绝无仅有
- Facebook又放大招!开源框架Pythia让深度学习更高效
- 成功解决ValueError: DataFrame.dtypes for label must be int, float or bool
- nginx随机变换图片服务器网址来防止盗链
- Android---Service(生命周期、启动方式、服务通信、实战演练、思维导图、高级音乐播放器-源码)
- 记一次糟心的内网靶场实战
- 一个脚本实现全量增量备份,并推送到远端备份中心服务器
- linux常用解压和压缩文件的命令
- 乱七八糟的,mark的东西...
- 计算机辅助设计技术案例,【智能科技学院】学院前沿技术运用课程组开展“计算机辅助设计”专题讲座...
- CSDN Markdown帮助文档
- visual studio使用小技巧(以vs2012为例)
- Python进阶练习题,新手快码起来
- “VMRC控制台的连接已断开…正在尝试重新连接”的解决方法
- Sonar插件的安装与使用详解
- 最全面计算机英语单词列表(一)
- 常见linux软件下载地址
- 【第8题】求 s=a+aa+aaa+aaaa+aa...a 的值
- postman设置为中文
- CTR预估 论文精读(十七)--ESMM: Entire Space Multi-Task Model
热门文章
- 断言(assert)详解
- 网页服务器知识,HTML网页服务器的知识点
- linux 开机启动文件夹,Linux开机启动流程
- 【CSDN】图片居中与调整大小
- [云炬创业基础笔记]第九章企业的法律形态测试4
- [云炬ThinkPython阅读笔记]1.6 形式语言和自然语言
- 科大星云诗社动态20210222
- 二十二、“此生无悔入华夏,来世还在种花家”(2021.7.1)
- 吐血整理!这可能是最全的机器学习工具手册
- C++类内存分布——深度理解继承与虚函数