失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 移动端网页打印代码_WEB移动端怎么是实现Console.log打印

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

时间:2018-10-04 22:16:51

相关推荐

移动端网页打印代码_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 /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打印》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。