#533
展开↯#534
作者:广西河池市
像素基本知识
视窗 viewport:
设备的屏幕上能用来显示我们的网页的那一块区域,而移动端还提供了两个viewport:
visual viewport(虚拟视口):
可以改变大小或形状,当前屏幕上显示的页面的一部分.
通过window.innerWidth/Height获取,会随著页面缩放而变化.
layout viewport(布局视口):
不会改变大小或形状,可以比可视化的viewport宽得多,并且包含出现在屏幕上的元素.
通过document.documentElement.clientWidth/Height获取.在Android 2, Oprea mini 和 UC 8中无法正确获取.
ideal viewport(理想视口):
不需要用户缩放和滚动就能正常的查看网站的所有内容,显示的文字大小合适,保证同样的网站在不同分辨率的设备上看起来都是一样或差不多的.
渲染过程:
1) 渲染: 将整个页面渲染在一个layout viewport中,以保证页面排版正确;
2) 缩放: 将整个layout viewport缩放到visual viewport大小,以保证页面在手机屏幕上被完整显示出来;
公式表示就是:visual viewpor = layout viewport * scale;
例如你在手机上访问一个PC页面,手机当前展示区域就是visual viewport,但是整个PC页面是很大的,往往屏幕是显示不完,所以会出现滚动条给你滑动(固定值排版的话),整个PC页面的尺寸就是layout viewport了,上面说visual viewport可以改变大小或形状,意思是你可以通过旋转屏幕或放大缩小改变显示的页面.
物理像素(physical pixel)/设备像素:
显示设备中一个最微小的物理部件.每个像素可以根据操作系统设置自己的颜色和亮度.正是这些设备像素的微小距离欺骗了我们肉眼看到的图像效果.
设备独立像素(density-independent pixel)/逻辑像素/密度无关像素:
可以认为是计算机坐标系统中的一个点,这个点代表一个可以由程序使用并控制的虚拟像素(比如CSS像素),然后由相关系统转换为物理像素.
公式表示就是:CSS像素 = 设备独立像素 = 逻辑像素.
与设备无关的像素(device-independent pixel)/CSS像素
用于页面布局的抽象单位,用来精确度量网页上的内容,在不同的设备或不同的环境中,css中的1px所代表的设备物理像素的长度可能是不同的.
屏幕密度(pixels per inch)/像素密度:
即每英寸屏幕所拥有的像素数,像素密度越大,显示画面细节就越丰富,
公式表示就是:像素密度 = 对角线分辨率 / 屏幕尺寸.
设备像素比(device pixel ratio):
物理像素与逻辑像素之间的比例.
公式表示就是:设备像素比(dpr) = 物理像素(pp) / 设备独立像素(dip).
在JavaScript中,可以通过window.devicePixelRatio获取到当前设备的dpr.而在CSS中,可以通过-webkit-device-pixel-ratio,-webkit-min-device-pixel-ratio和 -webkit-max-device-pixel-ratio进行媒体查询,对不同dpr的设备,做一些样式适配(这里只针对webkit内核的浏览器和webview). #,广西河池市,2018-05-07,10:20:18,
示例
以iPhone6S作为基准设计尺寸
设备宽高: 375pt 667pt
屏幕密度: 326ppi
visual viewport: 375px 667px
物理像素: 750pp 1334pp
CSS像素: 750px 1334px
设备独立像素: 750dip * 1334dip
设备像素比: 2dpr
某某手机
设备宽高: 375pt 667pt
visual viewport: 375px 667px
物理像素: 375pp 667pp
设备独立像素: 375dip 667dip
设备像素比: 1dpr
尽管两者CSS像素所呈现的物理尺寸是一致的,但在普通屏幕下1个CSS像素对应1个物理像素,而在Retina屏幕下,1个CSS像素对应的却是4个物理像素.靠提升单位面积屏幕的像素数量,即像素密度来提升分辨率. #,广西河池市,2018-05-07,10:33:24,@2 ,
(更详细内容请看使用Flexible实现手淘H5页面的终端适配)
(还有一些常用的居中布局,经典布局方法和优缺点可以参考我之前写的文章页面基础布局相关知识 --- 居中&经典布局)
移动端必备标签
width viewport宽度(数值/device-width)
height viewport高度(数值/device-height)
initial-scale 初始缩放比例
maximum-scale 最大缩放比例
minimum-scale 最小缩放比例
user-scalable 是否允许用户缩放(yes/no)
禁止数字识自动别为电话号码
忽略识别邮箱
删除默认的苹果工具栏和菜单栏
设置苹果状态栏的背景颜色
default 默认值.
black 状态栏背景是黑色.
black-translucent 状态栏背景是黑色半透明. 如果设置为 default 或 black ,网页内容从状态栏底部开始. 如果设置为 black-translucent ,网页内容充满整个屏幕,顶部会被状态栏遮挡.
苹果添加到主屏后的标题(iOS 6 新增)
苹果是否启用WebApp全屏模式
当按百分比设定一个元素的宽度时,它是相对于父容器的宽度计算的,但是,对于一些表示竖向距离的属性,例如 padding-top , padding-bottom , margin-top , margin-bottom 等,当按百分比设定它们时,依据的也是父容器的宽度,而不是高度. #,广西河池市,2018-05-07,10:36:22, 
多数显示器默认频率是60Hz,即1秒刷新60次,所以理论上最小间隔为1/60*1000ms = 16.7ms. #,广西河池市,2018-05-07,10:43:21,
改变输入框placeholder的颜色值
旋转样式
纯CSS创建三角形
input[type=number]的问题
1, maxlength属性不会提供任何反馈.
用js解决
2, form提交会默认取整数.
step属性规定<input>元素的合法数字间隔,也是通过自带箭头增减的数字,默认为1
通过transform进行skew变形,rotate旋转会造成出现锯齿现象
打电话
发短信,winphone系统无效
写邮件
第一个功能以"?"开头,后面的以"&"开头
mailto:普通邮件
cc: 收件地址后添加抄送地址(Android存在兼容问题)
bcc: 抄送地址后添加密件抄送地址(Android存在兼容问题)
subject: 包含主题
body: 包含内容,
1) 如包含文本,使用%0A给文本换行
2) 如包含http(s)://等的文本自动转化为链接
3) 如内容包含图片(PC不支持)
包含多个收件人、抄送、密件抄送人,用分号(;)隔开多个邮件人的地址
某些Android手机圆角失效
android上去掉语音输入按钮
ios和android下触摸元素时出现半透明灰色遮罩
有些机型去除不了,不使用a或者input标签,直接用div标签
#,广西河池市,2018-05-07,10:46:24,
ios 设置input按钮样式会被默认样式覆盖
iphone及ipad下输入框默认内阴影
Retina屏的1px边框
关于 iOS 系统中,中文输入法输入英文时,字母之间可能会出现一个六分之一空格
IOS中input键盘事件keyup、keydown、keypress支持不是很好
html5的oninput事件代替
iOS某些时候会觉得滚动很卡
auto: 使用普通滚动, 当手指从触摸屏上移开,滚动会立即停止.
touch: 使用具有回弹效果的滚动, 当手指从触摸屏上移开,内容会继续保持一段时间的滚动效果.继续滚动的速度和持续的时间和滚动手势的强烈程度成正比.同时也会创建一个新的堆栈上下文.
启动了硬件加速的特性,所以滑动起来会非常流畅;不过会影响性能
解决IOS键盘字母输入默认首字母大写
禁止长按链接与图片弹出菜单
手机拍照和上传图片
输入框被键盘挡住问题
可以解决绝大数安卓机上面的问题
#,广西河池市,2018-05-07,10:49:20,
播放视频不全屏
移动端 HTML5 audio autoplay 失效问题
苹果系统和安卓系统通常都会禁止自动播放和使用 JS 的触发播放,必须由用户来触发才可以播放.
1.audio元素的autoplay属性在IOS及Android上无法使用,在PC端正常
2.audio元素没有设置controls时,在IOS及Android会占据空间大小,而在PC端Chrome是不会占据任何空间
解决方法思路:先通过用户touchstart触碰,触发播放并暂停(音频开始加载,后面用 JS 再操作就没问题了).
微信下兼容处理
ios10+以上,尽管开发者设置了user-scalable=no,Safari还是允许用户通过手势来缩放
检测touch相关事件来阻止事件的触发
select下拉选择设置右对齐
视窗 viewport:
设备的屏幕上能用来显示我们的网页的那一块区域,而移动端还提供了两个viewport:
visual viewport(虚拟视口):
可以改变大小或形状,当前屏幕上显示的页面的一部分.
通过window.innerWidth/Height获取,会随著页面缩放而变化.
layout viewport(布局视口):
不会改变大小或形状,可以比可视化的viewport宽得多,并且包含出现在屏幕上的元素.
通过document.documentElement.clientWidth/Height获取.在Android 2, Oprea mini 和 UC 8中无法正确获取.
ideal viewport(理想视口):
不需要用户缩放和滚动就能正常的查看网站的所有内容,显示的文字大小合适,保证同样的网站在不同分辨率的设备上看起来都是一样或差不多的.
渲染过程:
1) 渲染: 将整个页面渲染在一个layout viewport中,以保证页面排版正确;
2) 缩放: 将整个layout viewport缩放到visual viewport大小,以保证页面在手机屏幕上被完整显示出来;
公式表示就是:visual viewpor = layout viewport * scale;
例如你在手机上访问一个PC页面,手机当前展示区域就是visual viewport,但是整个PC页面是很大的,往往屏幕是显示不完,所以会出现滚动条给你滑动(固定值排版的话),整个PC页面的尺寸就是layout viewport了,上面说visual viewport可以改变大小或形状,意思是你可以通过旋转屏幕或放大缩小改变显示的页面.
物理像素(physical pixel)/设备像素:
显示设备中一个最微小的物理部件.每个像素可以根据操作系统设置自己的颜色和亮度.正是这些设备像素的微小距离欺骗了我们肉眼看到的图像效果.
设备独立像素(density-independent pixel)/逻辑像素/密度无关像素:
可以认为是计算机坐标系统中的一个点,这个点代表一个可以由程序使用并控制的虚拟像素(比如CSS像素),然后由相关系统转换为物理像素.
公式表示就是:CSS像素 = 设备独立像素 = 逻辑像素.
与设备无关的像素(device-independent pixel)/CSS像素
用于页面布局的抽象单位,用来精确度量网页上的内容,在不同的设备或不同的环境中,css中的1px所代表的设备物理像素的长度可能是不同的.
屏幕密度(pixels per inch)/像素密度:
即每英寸屏幕所拥有的像素数,像素密度越大,显示画面细节就越丰富,
公式表示就是:像素密度 = 对角线分辨率 / 屏幕尺寸.
设备像素比(device pixel ratio):
物理像素与逻辑像素之间的比例.
公式表示就是:设备像素比(dpr) = 物理像素(pp) / 设备独立像素(dip).
在JavaScript中,可以通过window.devicePixelRatio获取到当前设备的dpr.而在CSS中,可以通过-webkit-device-pixel-ratio,-webkit-min-device-pixel-ratio和 -webkit-max-device-pixel-ratio进行媒体查询,对不同dpr的设备,做一些样式适配(这里只针对webkit内核的浏览器和webview).
示例
以iPhone6S作为基准设计尺寸
设备宽高: 375pt 667pt
屏幕密度: 326ppi
visual viewport: 375px 667px
物理像素: 750pp 1334pp
CSS像素: 750px 1334px
设备独立像素: 750dip * 1334dip
设备像素比: 2dpr
某某手机
设备宽高: 375pt 667pt
visual viewport: 375px 667px
物理像素: 375pp 667pp
设备独立像素: 375dip 667dip
设备像素比: 1dpr
尽管两者CSS像素所呈现的物理尺寸是一致的,但在普通屏幕下1个CSS像素对应1个物理像素,而在Retina屏幕下,1个CSS像素对应的却是4个物理像素.靠提升单位面积屏幕的像素数量,即像素密度来提升分辨率.
(更详细内容请看使用Flexible实现手淘H5页面的终端适配)
(还有一些常用的居中布局,经典布局方法和优缺点可以参考我之前写的文章页面基础布局相关知识 --- 居中&经典布局)
移动端必备标签
width viewport宽度(数值/device-width)
height viewport高度(数值/device-height)
initial-scale 初始缩放比例
maximum-scale 最大缩放比例
minimum-scale 最小缩放比例
user-scalable 是否允许用户缩放(yes/no)
禁止数字识自动别为电话号码
<meta name="format-detection" content="telephone=no" />
Run code
Cut to clipboard
忽略识别邮箱
<meta name="format-detection" content="email=no" />
Run code
Cut to clipboard
删除默认的苹果工具栏和菜单栏
<meta content="yes" name="apple-mobile-web-app-capable"/>
Run code
Cut to clipboard
设置苹果状态栏的背景颜色
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
Run code
Cut to clipboard
default 默认值.
black 状态栏背景是黑色.
black-translucent 状态栏背景是黑色半透明. 如果设置为 default 或 black ,网页内容从状态栏底部开始. 如果设置为 black-translucent ,网页内容充满整个屏幕,顶部会被状态栏遮挡.
苹果添加到主屏后的标题(iOS 6 新增)
<meta name="apple-mobile-web-app-title" content="标题">
Run code
Cut to clipboard
苹果是否启用WebApp全屏模式
<meta name="apple-mobile-web-app-capable" content="yes" />
Run code
Cut to clipboard
当按百分比设定一个元素的宽度时,它是相对于父容器的宽度计算的,但是,对于一些表示竖向距离的属性,例如 padding-top , padding-bottom , margin-top , margin-bottom 等,当按百分比设定它们时,依据的也是父容器的宽度,而不是高度.
多数显示器默认频率是60Hz,即1秒刷新60次,所以理论上最小间隔为1/60*1000ms = 16.7ms.
改变输入框placeholder的颜色值
::-webkit-input-placeholder { /* WebKit browsers */ color: #999; }
:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ color: #999; }
::-moz-placeholder { /* Mozilla Firefox 19+ */ color: #999; }
:-ms-input-placeholder { /* Internet Explorer 10+ */ color: #999; }
input:focus::-webkit-input-placeholder{ color:#999; }
Run code
Cut to clipboard
旋转样式
//竖屏时样式
@media all and (orientation:portrait){}
//横屏时样式
@media all and (orientation:landscape){}
###transition闪屏
```css
/设置内嵌的元素在 3D 空间如何呈现:保留3D /
-webkit-transform-style: preserve-3d;
/ 设置进行转换的元素的背面在面对用户时是否可见:隐藏 /
-webkit-backface-visibility:hidden;
Run code
Cut to clipboard
纯CSS创建三角形
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style media="screen">
div {
width: 0;
height: 0;
border-top: 40px solid transparent;
border-left: 40px solid transparent;
border-right: 40px solid transparent;
border-bottom: 40px solid #ff0000;
}
</style>
</head>
<body>
<div>
</div>
</body>
</html>
Run code
Cut to clipboard
input[type=number]的问题
1, maxlength属性不会提供任何反馈.
用js解决
2, form提交会默认取整数.
step属性规定<input>元素的合法数字间隔,也是通过自带箭头增减的数字,默认为1
<input type="number" name="points" step="0.01" />
Run code
Cut to clipboard
通过transform进行skew变形,rotate旋转会造成出现锯齿现象
Element{
-webkit-transform: rotate(-4deg) skew(10deg) translateZ(0);
transform: rotate(-4deg) skew(10deg) translateZ(0);
outline: 1px solid rgba(255,255,255,0)
}
Run code
Cut to clipboard
打电话
<a href="tel:10086">打电话给:10086</a>
Run code
Cut to clipboard
发短信,winphone系统无效
<a href="sms:10086">发短信给: 10086</a>
Run code
Cut to clipboard
写邮件
第一个功能以"?"开头,后面的以"&"开头
mailto:普通邮件
cc: 收件地址后添加抄送地址(Android存在兼容问题)
bcc: 抄送地址后添加密件抄送地址(Android存在兼容问题)
subject: 包含主题
body: 包含内容,
1) 如包含文本,使用%0A给文本换行
2) 如包含http(s)://等的文本自动转化为链接
3) 如内容包含图片(PC不支持)
包含多个收件人、抄送、密件抄送人,用分号(;)隔开多个邮件人的地址
<a href="mailto:xxx@qq.com;xxx@qq.com?cc=xxx&bcc=xxx@qq.com&subject=[邮件主题]&body=xxx%0A%0Ahttp://www.baidu.com%0A%0A<img src='images/1.jpg' />">点击我发邮件</a>
Run code
Cut to clipboard
某些Android手机圆角失效
Element{
background-clip: padding-box;
}
Run code
Cut to clipboard
android上去掉语音输入按钮
input::-webkit-input-speech-button {display: none}
Run code
Cut to clipboard
ios和android下触摸元素时出现半透明灰色遮罩
Element {
-webkit-tap-highlight-color:rgba(255,255,255,0)
}
Run code
Cut to clipboard
有些机型去除不了,不使用a或者input标签,直接用div标签
ios 设置input按钮样式会被默认样式覆盖
input,
textarea {
border: 0;
-webkit-appearance: none;
}
Run code
Cut to clipboard
iphone及ipad下输入框默认内阴影
Element{
-webkit-appearance: none;
}
Run code
Cut to clipboard
Retina屏的1px边框
Element{
border-width: thin;
}
Run code
Cut to clipboard
关于 iOS 系统中,中文输入法输入英文时,字母之间可能会出现一个六分之一空格
this.value = this.value.replace(/\u2006/g, '');
Run code
Cut to clipboard
IOS中input键盘事件keyup、keydown、keypress支持不是很好
html5的oninput事件代替
iOS某些时候会觉得滚动很卡
Element{
-webkit-overflow-scrolling: touch;
}
Run code
Cut to clipboard
auto: 使用普通滚动, 当手指从触摸屏上移开,滚动会立即停止.
touch: 使用具有回弹效果的滚动, 当手指从触摸屏上移开,内容会继续保持一段时间的滚动效果.继续滚动的速度和持续的时间和滚动手势的强烈程度成正比.同时也会创建一个新的堆栈上下文.
启动了硬件加速的特性,所以滑动起来会非常流畅;不过会影响性能
解决IOS键盘字母输入默认首字母大写
<input type="text" autocapitalize="off" />
Run code
Cut to clipboard
禁止长按链接与图片弹出菜单
a,img { -webkit-touch-callout: none }
Run code
Cut to clipboard
手机拍照和上传图片
//IOS有拍照、录像、选取本地图片功能,部分Android只有选择本地图片功能.Winphone不支持
<input type="file" accept="images/*" />
<input type="file" accept="video/*" />
Run code
Cut to clipboard
输入框被键盘挡住问题
if(/Android/.test(navigator.appVersion)) {
window.addEventListener("resize", function() {
if(document.activeElement.tagName=="INPUT" || document.activeElement.tagName=="TEXTAREA") {
document.activeElement.scrollIntoView();
}
})
}
Run code
Cut to clipboard
可以解决绝大数安卓机上面的问题
播放视频不全屏
<!--
1.ios7+支持自动播放
2.支持Airplay的设备(如:音箱、Apple TV)播放
x-webkit-airplay="true"
3.播放视频不全屏
webkit-playsinline="true"
-->
<video x-webkit-airplay="true" webkit-playsinline="true" preload="auto" autoplay src="http://"></video>
Run code
Cut to clipboard
移动端 HTML5 audio autoplay 失效问题
苹果系统和安卓系统通常都会禁止自动播放和使用 JS 的触发播放,必须由用户来触发才可以播放.
1.audio元素的autoplay属性在IOS及Android上无法使用,在PC端正常
2.audio元素没有设置controls时,在IOS及Android会占据空间大小,而在PC端Chrome是不会占据任何空间
解决方法思路:先通过用户touchstart触碰,触发播放并暂停(音频开始加载,后面用 JS 再操作就没问题了).
document.addEventListener('touchstart', function () {
document.getElementsByTagName('audio')[0].play();
document.getElementsByTagName('audio')[0].pause();
});
Run code
Cut to clipboard
微信下兼容处理
document.addEventListener("WeixinJSBridgeReady", function () {
music.play();
}, false);
Run code
Cut to clipboard
ios10+以上,尽管开发者设置了user-scalable=no,Safari还是允许用户通过手势来缩放
检测touch相关事件来阻止事件的触发
window.onload = function() {
// 同时按下两个手指
document.addEventListener('touchstart', function(event) {
if(event.touches.length > 1) {
event.preventDefault()
}
})
var lastTouchEnd = 0;
// 特别注意300ms时差的设置
document.addEventListener('touchend', function(event) {
var now = (new Date()).getTime();
if(now-lastTouchEnd <= 300) {
event.preventDefault();
}
lastTouchEnd = now;
})
}
Run code
Cut to clipboard
select下拉选择设置右对齐
select option {
direction: rtl;
}
Run code
Cut to clipboard
文章:手机以rem布局示例模板 发表时间:2018-05-07, 10:18:47
#535
作者:广西河池市宜州市
截图粘贴上传bug找不到 #,广西河池市,2018-05-03,16:29:00,
树大招风
一路顺风
极恶非道 #,广西河池市,2018-05-03,16:29:34, #,广西河池市,2018-05-03,16:29:52, 
#,广西河池市,2018-05-03,16:39:54,

#,广西河池市,2018-05-04,09:53:19,
树大招风
一路顺风
极恶非道
文章:@意见反馈/技术支持/伊网/安企网 发表时间:2018-05-02, 12:58:52
#536
作者:广西河池市
html布局页面初始化
#,广西河池市,2018-05-03,15:16:25, 手机以rem布局示例模板
<!DOCTYPE html>
<html>
<head>
<title>网站标题</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="keywords" content="网站关键词">
<meta name="description" content="网站描述">
<!--初始化--><style>
*{padding:0px;margin:0px;font-family: 微软雅黑, "Microsoft yahei", "Hiragino Sans GB", "冬青黑体简体中文 w3", "Microsoft Yahei", "Hiragino Sans GB", "冬青黑体简体中文 w3", STXihei, 华文细黑, SimSun, 宋体, Heiti, 黑体, sans-serif, Arial;}
img{display:block;max-width:100%;}
html,body{min-height:100%;}
/*利用:after伪元素*/
.clearUl:after {
content:"";
display: block;
clear: both;
}
/*去掉iPhone按钮样式 蓝色边框*/
input,textarea{outline:none;-webkit-appearance: none;}
</style>
<script>
//重写alert方法,去掉地址显示
window.alert = function(name){
var iframe = document.createElement("IFRAME");
iframe.style.display="none";
iframe.setAttribute("src", 'data:text/plain,');
document.documentElement.appendChild(iframe);
window.frames[0].window.alert(name);
iframe.parentNode.removeChild(iframe);
}
//重写confirm方法,去掉地址显示
window.confirm = function(name){
var iframe = document.createElement("IFRAME");
iframe.style.display="none";
iframe.setAttribute("src", 'data:text/plain,');
document.documentElement.appendChild(iframe);
var result = window.frames[0].window.confirm(name);
iframe.parentNode.removeChild(iframe);
return result;
}
</script><!--end-->
</head>
<body>
</body>
</html>
Run code
Cut to clipboard
文章:常用代码2 发表时间:2018-05-03, 15:14:36
#537
作者:广西河池市
HTML代码换行引起的空格问题
html代码空格影响
HTML中的换行造成空格问题
html的标签之间带不带空格或换行, 对样式有影响
html代码换行造成空格间距问题
html中连续多个空格或者多行空行的影响
HTML中的换行造成空格问题 html的标签之间的空白字符不被解析
对于html内置的内联级标签以及表单元素标签,源代码中连续几个内联级标签中的换行在浏览器中会被解释为一个空格。
包括ie和ff。而这个空格是会被当作一个空白节点(nodeType等于3的节点,就是文字节点)。
对于html内置的块级标签使用了display:inline;则没上述问题。
对于html内置的块级标签之间的换行,ff会当作一个空白节点(用js可以获取到),ie则会忽略掉这个换行。
这个换行在ie和ff的页面上并无任何影响,不会出现空格。
html代码空格影响
HTML中的换行造成空格问题
html的标签之间带不带空格或换行, 对样式有影响
html代码换行造成空格间距问题
html中连续多个空格或者多行空行的影响
HTML中的换行造成空格问题 html的标签之间的空白字符不被解析
给父元素设置字体大小为0,
Run code
Cut to clipboard
对于html内置的内联级标签以及表单元素标签,源代码中连续几个内联级标签中的换行在浏览器中会被解释为一个空格。
包括ie和ff。而这个空格是会被当作一个空白节点(nodeType等于3的节点,就是文字节点)。
对于html内置的块级标签使用了display:inline;则没上述问题。
对于html内置的块级标签之间的换行,ff会当作一个空白节点(用js可以获取到),ie则会忽略掉这个换行。
这个换行在ie和ff的页面上并无任何影响,不会出现空格。
文章:常用代码2 发表时间:2018-05-03, 11:46:08
#538
作者:中国
上传的时候点击预览是原来的 #,中国,2017-05-15,17:24:06, 上传再上传预览图不变 #,北京市,2017-05-15,19:31:44, 上传照片的时候点点动右边的clear左右来回缩进 #,广西南宁市,2017-05-17,18:06:41, 截屏等好久没得错误? #,广西南宁市,2017-05-18,09:11:19,@3 , 已经开放修复 #,广西南宁市,2017-05-18,16:27:12, #,广西南宁市,2017-05-19,11:51:18, #,广西南宁市,2017-05-19,18:43:57, 评论搜索无法分类栏目搜索出结果 #,广西南宁市,2017-05-19,18:44:47,@7 , sphinx增量索引 #,广西南宁市,2017-05-19,18:45:20, 固定滚动bug 拉到底部顶部自动固定会有一个像素下拉 #,北京市,2017-05-19,19:28:29,@7 , 评论搜索 斜杠高亮bug #,北京市,2017-05-19,20:03:38,@7 , 包含在代码块中无法高亮,代码被高亮显示分割 #,广西,2017-05-20,00:15:07, 增量分词索引搜索近似实时索引 #,广西,2017-05-20,01:40:12, 手机复制框宽度不够顶下来换行? #,广西,2017-05-20,01:41:48, 文章底部快速?回复按钮 #,北京市,2017-05-20,01:43:38, 评论默认滚到最底部最新楼层回复 #,北京市,2017-05-20,03:44:47,@15 , 非楼中楼不滚动最新,最新活动楼中楼回复最底就可以 #,北京市,2017-05-20,04:00:30, 此一时彼一时,不与夏虫言冰。 #,广西南宁市,2017-05-21,21:18:26, 登录 PDO #,广西南宁市,2017-05-22,09:14:17, 老贾都下台了,从生态化反到生态造反,能有多远? #,广西南宁市,2017-05-22,14:23:01, 期待出现新的产品,可惜现在的技术创新已死,就像现在的国内娱乐圈,就那么几个老人在控制;就那么几个毫无演技的“小鲜肉”在小丑作态,别的人没有老人点头上不去,你不喜欢景甜也得看景甜,一直看到你愿意看为止。 #,广西南宁市,2017-05-22,14:23:15,@20 , 这就叫壁垒,这就叫垄断,这就叫操控市场。 #,广西南宁市,2017-05-24,10:19:52,@21 , 入佛门六根不净,进商界狼性不足 #,广西南宁市,2017-05-24,10:25:15, 大清早亡了,不用守皇陵了。 #,广西南宁市,2017-05-24,11:51:24,@23 , 就像你开车时候只会数路上遇到了几个红灯一样,绿灯的数量是没人关心的。因为人们只会通过红灯的数量来评价路途是否通顺。 #,广西南宁市,2017-05-25,09:22:00, 商业上的成功,未必是价值上的成功 #,广西南宁市,2017-05-25,09:26:22, 网上喊话的技巧往往不在于逻辑有多正确,而在于你的说法会不会引起共鸣以及被人相信,所以煽动性和理直气壮就显得特别重要。因为公众大多不在乎逻辑正确和事实,更在乎主观感受和个人判断,所以历史上才有很多著名的诡辩。 #,广西南宁市,2017-05-25,10:05:18, 7天无理由退换货,快时尚下最大风险是冲动购物和品质 #,广西南宁市,2017-05-25,10:22:10,@27 , 人生经验,一旦开口借钱,无论是否借这朋友都没得做了 #,广西南宁市,2017-05-25,10:22:20,@28 , 人生而孤独,要懂得绝交。 #,广西南宁市,2017-05-25,10:23:23,@28 , 借钱的时候都要考虑一下
"如果对方不还我,怎么办..."
if..感情值>所借金额,借
if..对方偿还能力高,只是急事,不还的概率很低,借
else..不借 #,广西南宁市,2017-05-25,10:28:31, 既然那么简单,你花几天学习下自己做呗。 #,广西南宁市,2017-05-25,10:28:44,@31 , “如果我半天能做完我会接了这个单” 。。。那么之前那么多年踩的坑,各种历练的成本怎么算呢?
#,广西南宁市,2017-05-25,10:29:08,@31 , 如果我半天能做完我会接了这个单 #,广西南宁市,2017-05-25,10:29:18,@33 , 半天能做完,你半天的工资应该不止 500 #,广西南宁市,2017-05-25,14:48:53, 意识到时间很值钱是一个分水岭。 #,广西南宁市,2017-05-26,09:16:46,@35 , 古希腊哲学家普罗泰戈拉有句名言:人是万物的尺度。 #,广西南宁市,2017-05-27,14:44:57, 最怕突然的关心。。 #,广西南宁市,2017-05-31,17:37:15,@37 , 依据《咬文嚼字》杂志社的介绍。‘中止’一词是指中途停止,但有继续的可能,而‘终止’才是完全停止之意。 #,广西南宁市,2017-05-31,17:55:48, 我告诉你人类的情感是怎么来的 就是选择性的关闭对应的感触 比如你愤怒的原因其实是外在条件让你关闭了理性思考 而机器人和人的区别是没有任何外在条件能让他暂时地切断某一种感触 除非断电那就所有感触都断了 #,广西南宁市,2017-05-31,17:55:59,@39 , 你将神经元麻痹 只留下围棋方面的感触 经过一段时间的训练 也能像那台机器那样 你看那名棋手下棋是有捂住胸口的动作 说明了神经将压力释放到身体各个部位 而各个部位又将疼痛反应给大脑另大脑强行分散了注意力 #,广西南宁市,2017-05-31,17:56:14,@39 , 人类进化是通过错误歪打正着而来的 1000年后的正常人等于现在的怪胎 不含褒义的那种 甚至是现在人认为不适合生存的那种 我们的祖先通过身上没长毛的错误换来了高于其他动物的耐力 对于当时的猿而言就是错的 更容易暴露自己 但这份耐力又让我们掌握了工具 相反让当时最适合生存的猿类灭绝了 人类比机器厉害的地方就是总能有一两个怪胎 而机器人绝对是最适合现在的 但往往几千年后的人类就是那一两个怪胎的后代 因为新的游戏规则更适合他们 #,广西南宁市,2017-05-31,17:56:26,@41 , 人工智能的行动全部是有逻辑的,运算能力强大,即时运算能力人力难及,但没有逻辑的事人工智能怎么都做不来,比如艺术创作等创新型行为,人类的独特性也在于此。 #,广西南宁市,2017-05-31,17:56:49,@39 , “黄博士来摆棋,可能更让我有和AI对战的感觉。我也特别佩服黄博士,大家看直播也能看到我很爱动,总喜欢活动身体,而黄博士总是一动不动,不上厕所、不喝水、也不吃东西……所以跟黄博士下棋时,我觉得黄博士就是AlphaGo。” #,广西南宁市,2017-05-31,17:58:53, 但黄士杰,远远不止是AlphaGo的“人肉臂”。 #,广西南宁市,2017-05-31,18:01:34, 这个世界上的人性都一样,文化层面有所差异,但是所有人性底层并无区别。 #,广西南宁市,2017-05-31,18:02:35, 在《象与骑象人》这本经典的心理学通俗书籍中,作者将人脑系统分为控制系统以及自动化系统,我们绝大多数行为都来自于自动化系统,例如骑自行车,开车,打字等等,而控制系统一般用于需要作出复杂决策的事情。
因此,我们每天的生活都依靠无意识的自动化系统进行,毫无察觉,而控制系统只是偶尔出现,如果发现自己拖延,无所事事,想要启动控制系统去对抗自动化系统,则注定失败,因为控制系统每天有其注意力上限,而自动化系统永不疲倦,如同永动机一般。
作者把控制系统比作骑象人,自动化系统比作大象,真正决定我们行为的是大象,而非骑象人。 #,广西南宁市,2017-05-31,18:04:32,@46 , 为什么社交网络的设计这么复杂?
我认为原因有很多,但是最大原因在于,所有的设计都是为了取悦大象而设计,争夺骑象人的位置,大象嚷嚷着要什么,就为其设计出什么。
但问题是,这种注意力的被动式争夺最后都是不负责任的,是商业化的,我们不能从中获得某种更深刻的体验与成长,更多的都是被肤浅的表面吸引,所以我们在社交网络、社交媒体中收获的往往都是无聊与失落。
真正能够陪伴大象成长的,是骑象人的角色,其必须担当起引导者的角色,对一切信息一切诱惑,尽可能建立起更多的主动权,负起责任来。 #,广西南宁市,2017-05-31,18:05:18,@47 , 社交网络的关系太脆弱,几日不勾搭,就会感觉陌生许多。还是读点书好 #,广西南宁市,2017-06-01,10:56:49, 你这个态度 就是鲁迅笔下的那种人 #,广西南宁市,2017-06-01,15:25:10, 老王是已婚的,他盯着老张;老张盯着老李,老李未婚。请问是否有一个已婚的人盯着一个未婚的人?
A、有 B、没有 C、不确定 #,广西南宁市,2017-06-01,15:25:51,@50 , 问题的答案是有。无论老张是否已婚,都有。 #,广西南宁市,2017-06-01,15:26:04,@50 , 有。不管老张是已婚还是未婚,都能符合这个条件 #,广西南宁市,2017-06-01,15:50:48, 工具是一个过程:用大小形状都合适的物体,以最有效的方式完成工作。 #,北京市,2017-06-01,22:07:31, 定金是必须要买,订金是可以退的 #,北京市,2017-06-01,22:07:48,@54 , 借条和欠条也不一样,借条法律诉讼期20年,而欠条法律诉讼期2年 #,北京市,2017-06-01,22:08:22,@54 , 开玩笑啦,定金不买是不予退还的,而订金是全部退还或者部分退还的。 #,北京市,2017-06-01,22:09:11,@54 , 定是确定,订是预定 #,北京市,2017-06-01,22:11:34,@54 , 哎~你太懒了。百度了一下,你看看吧。 法律概念区分定金与订金 定金“是规范的法律概念,是一种担保形式;而”订金“并非法律语言,没有明确的法律规定,在审判实践中一般被视为预付款。两者的法律效力也是完全不同的;如果买方交付的是”定金“,那么买方违约则定金将卖方没收,卖方违约则必须向买方双倍返还定金;如果买方交付的是”订金“,那么不论哪一方反悔,卖方都只须原数退还”订金“。 #,广西南宁市,2017-06-02,14:18:28, 该配合你演出的我 视而不见 别逼一个最爱你的人即兴表演 #,北京市,2017-06-03,10:14:43, 教你一个收拾屋子的方法,把屋里的东西全部扔出去,再把有用的捡回来就行 #,北京市,2017-06-04,15:51:17, 为了一分钟床戏,生生陪导演练了九个月 #,广西南宁市,2017-06-06,09:46:56, 那时候我刚离开大学,还不知道我这一生到底该干什么。我有很多想法,但是没有方向。 #,广西南宁市,2017-06-06,09:58:33, 既然遇见,不如一起成长。 #,广西南宁市,2017-06-07,16:33:06, #,北京市,2017-06-07,22:30:26,@63 , 简历上,一年经验的写精通xxx,五年经验的写熟悉xxx,十年经验的写略懂xxx。 #,北京市,2017-06-07,22:58:15, 用一个比较脑洞的例子来说就是,自己的车爆胎了,你的第一反应是自己太沉,而不是路上有钉子。 #,北京市,2017-06-07,23:40:01, 鸡汤文里最高频的词,除了「感恩」,就数得上「努力」了。 #,北京市,2017-06-07,23:47:04, 庄子与惠子游于濠梁之上。
庄子曰:「鯈鱼出游从容,是鱼之乐也。」
惠子曰:「子非鱼,安知鱼之乐?」
庄子曰:「子非我,安知我不知鱼之乐?」
惠子曰:「知子莫若父。」
「当时情况就是这样。」
每次说起这个,惠子都会激动地拍着轮椅。 #,北京市,2017-06-07,23:55:35, 至今不知道YouTube上面的翻墙教程到底是什么 #,北京市,2017-06-07,23:56:08,@69 , rar格式的WinRAR安装程序 #,北京市,2017-06-08,00:00:17,@69 , 微软的问题可以靠重启以及重装来解决。 #,北京市,2017-06-08,00:07:54, 三流码农写UI,二流码农写架构,一流码农写算法, #,北京市,2017-06-08,00:41:30, 看懂古惑仔的都挣钱了,没看懂的都坐牢了 #,广西南宁市,2017-06-08,10:51:34, 数据就是数字经济时代的石油 #,中国,2017-06-08,23:12:25,@17 , 要不是中国好声音不可以吐痰,还指不定谁是冠军 #,广西南宁市,2017-06-13,09:46:49, 这个关系不知道能不能叫朋友,可以叫"知道名字的人" #,广西南宁市,2017-06-13,09:53:31,
没学历不适合打工 #,广西南宁市,2017-06-13,09:56:53,@77 , 对于有学历的人来说,工作经验是多和少的区别
对没学历的人来说,学历就是有和无的区别 #,广西南宁市,2017-06-13,09:58:59, A 依赖于 B,B 依赖于 C,现在说 C 缺失,拿 D 给你顶一下,几个版本迭代过去 D 突然不好用了就 GG 了 #,广西南宁市,2017-07-03,15:40:20, 评论置顶图集跳转问题序列锚点回复 #,广西南宁市,2017-07-07,17:59:49,
苹果手机点击表情不了,没反应 #,广西南宁市,2017-07-09,13:28:48,@63 , 我把新买的iPhone7放在钢琴上,我同学看到后说:真能装!把手机放这么显眼的位置。我笑了笑说:我弹着80万的钢琴,你却只看到一个7千块钱的手机。我的妈妈对我说:你住的5千万的别墅,却眼里只有钢琴。我的爸爸对妈妈说:你享有身价10亿的老公陪着,却眼里只有个破别墅!我笑着对一个贴吧的大神们说:我给你们发表神评论,而你却纠结我是不是在骗赞!!!眼界决定境界!格局决定结局 #,广西南宁市,2017-07-10,11:55:52,@29 , 百度做了一件很傻逼的事情,就是他在打通了人与信息的渠道以后,放了个收费站: #,广西河池市宜州市,2018-05-02,10:57:25, 当年诸葛亮做造10万支箭的project,第一天不干,第二天不干,第三天deadline快到的时候,拉鲁肃通宵。 #,广西河池市宜州市,2018-05-02,11:00:37,@84 , 尊敬的 共振创意-李振球 , 您在2015年4月13日注册QQ秀,
//return false;
Run code
Cut to clipboard
favicon.ico
Run code
Cut to clipboard
<html>
<body>
<p>一打有 <del>二十</del> <ins>十二</ins> 件。</p>
<p>大多数浏览器会改写为删除文本和下划线文本。</p>
<p>一些老式的浏览器会把删除文本和下划线文本显示为普通文本。</p>
</body>
</html>
Run code
Cut to clipboard
"如果对方不还我,怎么办..."
if..感情值>所借金额,借
if..对方偿还能力高,只是急事,不还的概率很低,借
else..不借
因此,我们每天的生活都依靠无意识的自动化系统进行,毫无察觉,而控制系统只是偶尔出现,如果发现自己拖延,无所事事,想要启动控制系统去对抗自动化系统,则注定失败,因为控制系统每天有其注意力上限,而自动化系统永不疲倦,如同永动机一般。
作者把控制系统比作骑象人,自动化系统比作大象,真正决定我们行为的是大象,而非骑象人。
我认为原因有很多,但是最大原因在于,所有的设计都是为了取悦大象而设计,争夺骑象人的位置,大象嚷嚷着要什么,就为其设计出什么。
但问题是,这种注意力的被动式争夺最后都是不负责任的,是商业化的,我们不能从中获得某种更深刻的体验与成长,更多的都是被肤浅的表面吸引,所以我们在社交网络、社交媒体中收获的往往都是无聊与失落。
真正能够陪伴大象成长的,是骑象人的角色,其必须担当起引导者的角色,对一切信息一切诱惑,尽可能建立起更多的主动权,负起责任来。
A、有 B、没有 C、不确定
linux,unix: \r\n
windows : \n
Mac OS : \r
Run code
Cut to clipboard
庄子曰:「鯈鱼出游从容,是鱼之乐也。」
惠子曰:「子非鱼,安知鱼之乐?」
庄子曰:「子非我,安知我不知鱼之乐?」
惠子曰:「知子莫若父。」
「当时情况就是这样。」
每次说起这个,惠子都会激动地拍着轮椅。
没学历不适合打工
对没学历的人来说,学历就是有和无的区别
苹果手机点击表情不了,没反应
文章:@意见反馈/技术支持/伊网/安企网 发表时间:2017-05-15, 17:23:37
#540
作者:广西南宁市
微信小程序引用其他js文件
1.先建立一个common.js文件,在common.js编写程序,
在文件域js内
#,广西南宁市,2017-12-09,11:10:24, 微信小程序-调用工具js文件/utils文件中的函数/变量
在小程序中,定义了一项工具文件utils,此文件的js旨在本文件之内有效,当其他子页面想调用其中的js方法或者变量时,需要两步骤:
1:在utils被调用的js文件中,面向对象的方式模型输出:
2:在要调用的js文件中模块化引入utils的js文件可以输出一下object就能看到被调用的方法了;
utils中被调用的js:
要调用的js文件:
#,广西南宁市,2018-01-02,16:35:07, 微信小程序 setdata自动设置 #,广西南宁市,2018-01-02,16:36:00, JS 循环遍历JSON数据
或是
#,广西河池市宜州市,2018-04-27,15:59:43,
这个count最大只能填写9(官方文档少了这个参数的具体描述)
1.先建立一个common.js文件,在common.js编写程序,
function myfunc() {
console.log("myfunc....");
}
module.exports.myfunc = myfunc; //暴露接口,这里不暴露不能引用
Run code
Cut to clipboard
在文件域js内
var common = require("../../common.js");//去链接过来,光链接过来还不行
var app;
var common = require("../../common.js");
Page({
data:{
},
onLoad:function() {
app = getApp();
this.setData({version:app.globalData.appName});
common.myfunc(); //最后需要执行才能生效
}
})
Run code
Cut to clipboard
在小程序中,定义了一项工具文件utils,此文件的js旨在本文件之内有效,当其他子页面想调用其中的js方法或者变量时,需要两步骤:
1:在utils被调用的js文件中,面向对象的方式模型输出:
module.exports={要调用的函数名称:要调用的函数名称 }
Run code
Cut to clipboard
2:在要调用的js文件中模块化引入utils的js文件
var object=require("utils被调用的js文件地址")
Run code
Cut to clipboard
utils中被调用的js:
var URl='http://123.23.169';
var getImageurl=function(imageurl){
return URl+imageurl;
}
// 要引用这个文件的函数或者变量,除了在要引用的的js文件中模块化之外(var utils=require('js地址')),
// 在被引用的的js中要通过 module.exports={a:a}作为面向对象的变量输出函数如下:
module.exports={
URl:URl,//要引用的函数 xx:xx
getImageurl:getImageurl
}
Run code
Cut to clipboard
要调用的js文件:
// 获得工具utils工具js里面函数,先模块化引用utils里面的js地址 reqiure('js地址')成一个面向对象
var utils=require('../../utils/app.js')
// console.log(utils) 可查看获得的函数
console.log(utils.getImageurl('iamgeaaddress.png'))
Run code
Cut to clipboard
that.setData(res.data)
Run code
Cut to clipboard
var data=[{name:"a",age:12},{name:"b",age:11},{name:"c",age:13},{name:"d",age:14}];
for(var o in data){
alert(o);
alert(data[o]);
alert("text:"+data[o].name+" value:"+data[o].age );
}
Run code
Cut to clipboard
或是
<script type="text/javascript">
function text(){
var json = {"options":"[{/"text/":/"王家湾/",/"value/":/"9/"},{/"text/":/"李家湾/",/"value/":/"10/"},{/"text/":/"邵家湾/",/"value/":/"13/"}]"}
json = eval(json.options)
for(var i=0; i<json.length; i++)
{
alert(json[i].text+" " + json[i].value)
}
}
</script>
Run code
Cut to clipboard
wx.chooseImage({
count: 1, // 默认9
Run code
Cut to clipboard
这个count最大只能填写9(官方文档少了这个参数的具体描述)
文章:微信小程序开发笔记 发表时间:2017-12-09, 11:08:09
#541
作者:广西河池市宜州市
文章:@意见反馈/技术支持/伊网/安企网 发表时间:2018-04-26, 15:09:50
#543
作者:广西河池市金城江区
曾经有一次,朋友给我截图,他先是打开了相机,然后对准了屏幕,紧接着按下了截屏键,然后把相机界面的截图发到群里……
文章:程序员编程常用网页工具集[游戏] 发表时间:2018-04-24, 14:56:31
#544
作者:广西河池市金城江区
去掉iPhone按钮样式
只要在样式里面加一句去掉css去掉iPhone、iPad的默认按钮样式就可以了。 (不要写在class里哦)
input[type="button"], input[type="submit"], input[type="reset"] {-webkit-appearance: none;}
textarea { -webkit-appearance: none;}
如果还有圆角的问题,
.button{ border-radius: 0; }
1、去除Chrome等浏览器文本框默认发光边框
input:focus, textarea:focus {outline: none;}
去掉高光样式:
input:focus{-webkit-tap-highlight-color:rgba(0,0,0,0);
-webkit-user-modify:read-write-plaintext-only;}
当然这样以来,当文本框载入焦点时,所有浏览器下的文本框的边框都不会有颜色上及样式上的变化了,这样的话,当文本框载入焦点时,边框颜色就会变为橙色,给用户一个反馈。
2、去除IE10+浏览器文本框后面的小叉叉,只需下面一句就ok了
input::-ms-clear {display: none;}
Run code
Cut to clipboard
文章:移动端页面默认样式重置 发表时间:2018-04-23, 17:28:57
#545
作者:广西南宁市
$res = $this->replyNews ( $articles );
} elseif ($keywordArr ['extra_text'] == 'custom_reply_news') {
// 单条图文回复
$info = M ( 'custom_reply_news' )->where ( $map )->find ();
// 组装微信需要的图文数据,格式是固定的
$articles [0] = array (
'Title' => $info ['title'],
'Description' => $info ['intro'],
'PicUrl' => get_cover_url ( $info ['cover'] ),
'Url' => $this->_getNewsUrl ( $info, $param )
);
$res = $this->replyNews ( $articles );
} else {
// 增加积分
add_credit ( 'custom_reply', 300 );
// 文本回复
$info = M ( 'custom_reply_text' )->where ( $map )->find ();
$contetn = replace_url ( htmlspecialchars_decode ( $info ['content'] ) );
//2017.09.06
//'asdf'.
if($keywordArr ['keyword']=='wxcustomservice123'){
$nowkeeff=$this->kfzzxx();
//$contetn = htmlspecialchars_decode($nowkeeff['kf_list'][0]['kf_account']);
$contentnew='当前客服:'."\n\r";
foreach($nowkeeff['kf_list'] as $nk=>$nv){
$contentnew.= ($nk+1).'、'.$nv['kf_nick']."\n\r";
}
if(!(count($nowkeeff['kf_list']))) $contentnew.='暂无客服人员接入。';
else $contentnew.='正在为您转接人工客服';
$contetn = ($contentnew);//htmlspecialchars_decode
/*$articles [0] = array (
'Title' => '当前客服:',
'Description' => $contentnew,
'PicUrl' => get_cover_url ( $info ['cover'] ),
'Url' => $this->_getNewsUrl ( $info, $param )
);
$res = $this->replyNews ( $articles );
exit;*/
//$articles [0]['Title']='fads';//.$keywordArr ['keyword'];//$nowkeeff['kf_list'][0]['kf_account'];
}
//end
$this->replyText ( $contetn );
}
}
//获取在线客服
function kfzzxx(){
//exit;
$access_token=get_access_token();
$url='https://api.weixin.qq.com/cgi-bin/customservice/getkflist?access_token='.$access_token;
$content = file_get_contents($url);
//echo $sss=$this->get_web_page($url);
return $sss=json_decode($content, true);
//dump($content);
//header('Location:'.$url);
//exit;
}
Run code
Cut to clipboard
/Addons/CustomReply/Model/WeixinAddonModel.class.php
Run code
Cut to clipboard
php 中去除中文的换行,str_replace(PHP_EOL,'',($res['share_content']));
Run code
Cut to clipboard
<?php
$jsapi_ticket=get_jsapi_ticket();
//$access_token=get_access_token();
$appinfo=get_token_appinfo();
require_once "jssdk.php";
$jssdk = new JSSDK($appinfo['appid'],$appinfo['secret'],$access_token=0,$jsapi_ticket);
$signPackage = $jssdk->GetSignPackage();
//dump($signPackage);
?>
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script>
/*
* 注意:
* 1. 所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
* 2. 如果发现在 Android 不能分享自定义内容,请到官网下载最新的包覆盖安装,Android 自定义分享接口需升级至 6.0.2.58 版本及以上。
* 3. 常见问题及完整 JS-SDK 文档地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
*
* 开发中遇到问题详见文档“附录5-常见错误及解决办法”解决,如仍未能解决可通过以下渠道反馈:
* 邮箱地址:weixin-open@qq.com
* 邮件主题:【微信JS-SDK反馈】具体问题
* 邮件内容说明:用简明的语言描述问题所在,并交代清楚遇到该问题的场景,可附上截屏图片,微信团队会尽快处理你的反馈。
*/
//console.log('fdasfdas');
wx.config({
/*debug: true,*/
appId: '<?php echo $signPackage["appId"];?>',
timestamp: <?php echo $signPackage["timestamp"];?>,
nonceStr: '<?php echo $signPackage["nonceStr"];?>',
signature: '<?php echo $signPackage["signature"];?>',
jsApiList: [
// 所有要调用的 API 都要加到这个列表中
'onMenuShareTimeline',
'onMenuShareAppMessage',
'onMenuShareQQ',
'onMenuShareWeibo',
'onMenuShareQZone'
]
});
wx.ready(function () {
// 在这里调用 API
wx.onMenuShareTimeline({
imgUrl: 'http://***lizhenqiu.com/222.jpg'
});
wx.onMenuShareAppMessage({
desc: '地址:<?php echo $config['xl_dz'];?>\n电话:<?php echo $config['xl_man'];?>', // 分享描述
imgUrl: 'http://***lizhenqiu.com/222.jpg'
});
wx.onMenuShareQQ({
desc: '地址:<?php echo $config['xl_dz'];?>\n电话:<?php echo $config['xl_man'];?>', // 分享描述
imgUrl: 'http://***lizhenqiu.com/222.jpg'
});
wx.onMenuShareWeibo({
desc: '地址:<?php echo $config['xl_dz'];?>\n电话:<?php echo $config['xl_man'];?>', // 分享描述
imgUrl: 'http://***lizhenqiu.com/222.jpg'
});
wx.onMenuShareQZone({
desc: '地址:<?php echo $config['xl_dz'];?>\n电话:<?php echo $config['xl_man'];?>', // 分享描述
imgUrl: 'http://***lizhenqiu.com/222.jpg'
});
});
</script>
Run code
Cut to clipboard
// 判断公众号的类型:是订阅号还是服务号
function get_token_type($token = '') {
$info = get_token_appinfo ( $token );
return intval ( $info ['type'] );
}
// 获取jsapi_ticket,自动带缓存功能
function get_jsapi_ticket($token = '') {
empty ( $token ) && $token = get_token ();
$key = 'jsapi_ticket_' . $token;
$res = S ( $key );
if ($res !== false)
return $res;
$info = get_token_appinfo ( $token );
if (empty ( $info ['appid'] ) || empty ( $info ['secret'] )) {
S ( $key, 0, 7200 );
return 0;
}
$accessToken=get_access_token();
$url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=$accessToken";
$tempArr = json_decode ( file_get_contents ( $url ), true );
//dump($tempArr);exit;
if (@array_key_exists ( 'ticket', $tempArr )) {
S ( $key, $tempArr ['ticket'], 7200 );
return $tempArr ['ticket'];
} else {
return 0;
}
}
// 获取access_token,自动带缓存功能
function get_access_token($token = '') {
empty ( $token ) && $token = get_token ();
$key = 'access_token_' . $token;
$res = S ( $key );
if ($res !== false)
return $res;
$info = get_token_appinfo ( $token );
if (empty ( $info ['appid'] ) || empty ( $info ['secret'] )) {
S ( $key, 0, 7200 );
return 0;
}
$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . $info ['appid'] . '&secret=' . $info ['secret'];
// 如果是企业号用以下URL获取access_token
//if(intval ( $info ['type'] )==1) $url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' . $info ['appid'] . '&corpsecret=' . $info ['secret'];
$tempArr = json_decode ( file_get_contents ( $url ), true );
if (@array_key_exists ( 'access_token', $tempArr )) {
S ( $key, $tempArr ['access_token'], 7200 );
return $tempArr ['access_token'];
} else {
return 0;
}
}
Run code
Cut to clipboard
<?php
class JSSDK {
private $appId;
private $appSecret;
private $access_token;
private $jsapi_ticket;
public function __construct($appId, $appSecret,$access_token,$jsapi_ticket) {
$this->appId = $appId;
$this->appSecret = $appSecret;
$this->access_token = $access_token;
$this->jsapi_ticket = $jsapi_ticket;
}
public function getSignPackage() {
$jsapiTicket = $this->jsapi_ticket;//$this->getJsApiTicket();
// 注意 URL 一定要动态获取,不能 hardcode.
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
$url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$timestamp = time();
$nonceStr = $this->createNonceStr();
// 这里参数的顺序要按照 key 值 ASCII 码升序排序
$string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr×tamp=$timestamp&url=$url";
$signature = sha1($string);
$signPackage = array(
"appId" => $this->appId,
"nonceStr" => $nonceStr,
"timestamp" => $timestamp,
"url" => $url,
"signature" => $signature,
"rawString" => $string
);
return $signPackage;
}
private function createNonceStr($length = 16) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$str = "";
for ($i = 0; $i < $length; $i++) {
$str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
}
return $str;
}
private function getJsApiTicket() {
return $this->jsapi_ticket;
// jsapi_ticket 应该全局存储与更新,以下代码以写入到文件中做示例
$data = json_decode($this->get_php_file("jsapi_ticket.php"));
if ($data->expire_time < time()) {
$accessToken = $this->getAccessToken();
// 如果是企业号用以下 URL 获取 ticket
$url = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=$accessToken";
//$url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=$accessToken";
$res = json_decode($this->httpGet($url));
$ticket = $res->ticket;
if ($ticket) {
$data->expire_time = time() + 7000;
$data->jsapi_ticket = $ticket;
$this->set_php_file("jsapi_ticket.php", json_encode($data));
}
} else {
$ticket = $data->jsapi_ticket;
}
return $ticket;
}
private function getAccessToken() {
return $this->access_token;
// access_token 应该全局存储与更新,以下代码以写入到文件中做示例
$data = json_decode($this->get_php_file("access_token.php"));
if ($data->expire_time < time()) {
// 如果是企业号用以下URL获取access_token
$url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$this->appId&corpsecret=$this->appSecret";
//$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret";
$res = json_decode($this->httpGet($url));
$access_token = $res->access_token;
if ($access_token) {
$data->expire_time = time() + 7000;
$data->access_token = $access_token;
$this->set_php_file("access_token.php", json_encode($data));
}
} else {
$access_token = $data->access_token;
}
return $access_token;
}
private function httpGet($url) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
// 为保证第三方服务器与微信服务器之间数据传输的安全性,所有微信接口采用https方式调用,必须使用下面2行代码打开ssl安全校验。
// 如果在部署过程中代码在此处验证失败,请到 http://curl.haxx.se/ca/cacert.pem 下载新的证书判别文件。
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLOPT_URL, $url);
$res = curl_exec($curl);
curl_close($curl);
return $res;
}
private function get_php_file($filename) {
return trim(substr(file_get_contents($filename), 15));
}
private function set_php_file($filename, $content) {
$fp = fopen($filename, "w");
fwrite($fp, "<?php exit();?>" . $content);
fclose($fp);
}
}
Run code
Cut to clipboard
\r回到行首
\n换行
Run code
Cut to clipboard
\n是换行,英文是New line,表示使光标到行首
\r是回车,英文是Carriage return,表示使光标下移一格
\r\n表示回车换行
我们在平时使用电脑时,已经习惯了回车和换行一次搞定,敲一个回车键,即是回车,又是换行。
1、\n 软回车:
在Windows 中表示换行且回到下一行的最开始位置。相当于Mac OS 里的 \r 的效果。
在Linux、unix 中只表示换行,但不会回到下一行的开始位置。
2、\r 软空格:
在Linux、unix 中表示返回到当行的最开始位置。
在Mac OS 中表示换行且返回到下一行的最开始位置,相当于Windows 里的 \n 的效果。
3、\t 跳格(移至下一列)。
它们在双引号或定界符表示的字符串中有效,在单引号表示的字符串中无效。
\r\n 一般一起用,用来表示键盘上的回车键,也可只用 \n。
\t表示键盘上的“TAB”键。
就像你使用 enter和shift+enter的区别
4、文件中的换行符号:
linux,unix: \r\n
windows : \n
Mac OS : \r
Run code
Cut to clipboard
5、常用转义符号的意义:
\n LF或ASCII中的0x0A(10)
\r CR或ASCII中的0x0D(13)
\t 水平制表符-HT或ASCII中的0x09(9)
\\ 反斜杠
\$ 美圆符
\" 双引号
\' 单引号
Run code
Cut to clipboard
6、"\r\n"与"</br>"的区别
\r\n是输出的HTML代码换行,客户看到的效果没有换行。
如果是输出给浏览器,就用<br/>
\r\n,好比你在DreamWeaver里做一个网页,在源代码里按一下回车,是给源代码回车换行。
是输出一个(HTML标记性语言),在HTML中解释为输入的字换行。 \r\n的作用是给源代码回车换行,输入后,查看html源代码,就看会到有换行,而HTML解释器(浏览器)认为它是没用的东西,用不用都一样显示。
$info = M ( 'custom_reply_text' )->where ( $map )->find ();
$contetn = replace_url ( htmlspecialchars_decode ( $info ['content'] ) );
//if(!$content) $content='暂无客服人员接入。';
//2017.09.06
//'asdf'.
if($keywordArr ['keyword']=='wxcustomservice123' || !$content){
// 文本回复
$info = M ( 'custom_reply_text' )->where ( $map )->find ();
$contetn = replace_url ( htmlspecialchars_decode ( $info ['content'] ) );
//if(!$content) $content='暂无客服人员接入。';
//2017.09.06
//'asdf'.
if($keywordArr ['keyword']=='wxcustomservice123' || !$content){
Run code
Cut to clipboard
文章:weiphp微信多客服系统插件 发表时间:2017-09-06, 13:19:02
#546
作者:广西河池市金城江区
Swiper的初始化与更新
用js监视用户浏览器的大小变动
js 页面宽度 js 监听页面宽度变化 js 监听页面宽度变化 js监控页面变化
js获取浏览器和设备相关width(屏幕的宽度)
用js监视用户浏览器的大小变动
js 页面宽度 js 监听页面宽度变化 js 监听页面宽度变化 js监控页面变化
js获取浏览器和设备相关width(屏幕的宽度)
<!-----banner 开始------>
<style>
.device {width:100%;height: 100%;background: #111; position: relative;}
/*------------------左右按钮-----------------*/
/*.device .arrow-left {background: url(img/arrows.png) no-repeat left top;position: absolute;left: 10px;top: 50%;margin-top: -15px;width: 17px; height: 30px;}
.device .arrow-right {background: url(img/arrows.png) no-repeat left bottom; position: absolute; right: 10px; top: 50%; margin-top: -15px; width: 17px; height: 30px;}*/
.swiper-container {width:100%;height:100%;}
.content-slide {padding: 20px;color: #fff;}
.title {font-size: 25px;margin-bottom: 10px;}
.pagination {position: absolute;z-index: 20;bottom:17px;width: 100%;text-align: center;}
.swiper-pagination-switch {display: inline-block;width:8px;height: 8px; border-radius: 8px;background-color:#ffd17d;margin: 0 5px;opacity: 0.8;cursor: pointer;display: block;margin-left: 18px;display: inline-block;border-radius:25px;-moz-border-radius:25px;}
.swiper-active-switch {background:transparent;border: 1px solid #ffd17d;opacity: 1;width:10px;height:10px;display: block;display: inline-block;border-radius:25px;-moz-border-radius:25px;margin-bottom:-1px;}
.bj>.in_news>.neih>.xinw>a>.meige>.ner>p{height:38px;}
</style>
<div class="device">
<a class="arrow-left" href="javascript:;"></a>
<a class="arrow-right" href="javascript:;"></a>
<div class="swiper-container">
<div class="swiper-wrapper">
<foreach name="blist" item="r" key="k" >
<div class="swiper-slide"><div class="jqthumb" style="width: 100%px; height: 600px; opacity: 1;"><div style="width: 100%; height: 100%; background-image: url({$r.img_path}); background-repeat: no-repeat; background-position: 50% 50%; background-size: cover;"></div></div></div>
</foreach>
<!--
<div class="swiper-slide"><div class="jqthumb" style="width: 100%px; height: 600px; opacity: 1;"><div style="width: 100%; height: 100%; background-image: url(images/index_19.png); background-repeat: no-repeat; background-position: 50% 50%; background-size: cover;"></div></div></div>
<div class="swiper-slide"><div class="jqthumb" style="width: 100%px; height: 600px; opacity: 1;"><div style="width: 100%; height: 100%; background-image: url(images/index_19.png); background-repeat: no-repeat; background-position: 50% 50%; background-size: cover;"></div></div> </div>
-->
</div>
</div>
<div class="pagination"></div>
</div>
<script src="js/idangerous.swiper.min.js"></script>
<script>
var mySwiperhtml;
$(document).ready(function(){
if(!mySwiperhtml) mySwiperhtml=$('.swiper-container').html();
newssspptttt();
var nwesswidttth=document.body.clientWidth;
window.onresize = function(){
if(nwesswidttth!=document.body.clientWidth){
if(mySwiper) $('.swiper-container').html(mySwiperhtml);
newssspptttt();
}
}
});
var mySwiper;
function newssspptttt(){
/*if(mySwiper){
//mySwiper.removeAllSlides();
$('.swiper-container').html(mySwiperhtml);
mySwiper.appendSlide(mySwiperhtml);
mySwiper.startAutoplay();
}*/
mySwiper = new Swiper('.swiper-container',{
autoplay : 5000,//可选选项,自动滑动
loop : true,//可选选项,开启循环
calculateHeight : true,
pagination : '.pagination',
paginationClickable :true,
roundLengths : true,slidesPerView : 1,autoResize : false,
});
$('#sdafasdfdsimgmmm').hide();
$(".swiper-slide img").each(function(){
$(this).show();
});}
</script>
<!-----banner 结束------>
Run code
Cut to clipboard
if(isNew){
$('#newstop-wrapper').append(html);
topSwiper = new Swiper('#newstop', {
pagination : '.swiper-pagination',
loop : true,
autoplay : 5000,
preventClicks : false,
preventLinksPropagation : true,
width : window.innerWidth,
autoplayDisableOnInteraction : false,
observer : true
});
} else {
topSwiper.stopAutoplay();
topSwiper.removeAllSlides();
if($.trim(html) != ""){
topSwiper.appendSlide(html);
topSwiper.startAutoplay();
}
}
Run code
Cut to clipboard
文章:swiper2兼容ie幻灯片插件 发表时间:2018-04-23, 16:49:22
#547
作者:广西南宁市
爱琴海上有一座圣托里尼岛,那里的阳光非常明媚,天和大海特别蓝 #,广西河池市金城江区,2018-04-23,11:57:07, 情不知所起 一往而深 情不知所终 一往而殆
文章:在现在万众创业的年代,职场员工入职是有门槛,但注册开个公司做老板的门槛无非就是一个钱字 发表时间:2017-02-09, 09:30:11
#548
作者:广西河池市金城江区
新后台 百度编辑器 插入视频 教程 ueditor iframe

\app\system\include\public\js\examples\editor\ueditor\dialogs\insertframe
Run code
Cut to clipboard
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script type="text/javascript" src="../internal.js"></script>
<style type="text/css">
.warp {width: 320px;height: 153px;margin-left:5px;padding: 20px 0 0 15px;position: relative;}
#url {width: 290px; margin-bottom: 2px; margin-left: -6px; margin-left: -2px\9;*margin-left:0;_margin-left:0; }
.format span{display: inline-block; width: 58px;text-align: center; zoom:1;}
table td{padding:5px 0;}
#align{width: 65px;height: 23px;line-height: 22px;}
</style>
</head>
<body>
<div class="warp">
<table width="300" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2" class="format">
<!--<span><var id="lang_input_address"></var></span>-->
<textarea id="url" style="width:280px" rows="6"></textarea>
<!--<input style="width:200px" id="url" type="text" value=""/>-->
</td>
</tr>
<tr>
<td colspan="2" class="format"><span><var id="lang_input_width"></var></span><input style="width:200px" type="text" value="100%" id="width"/> </td>
</tr>
<tr>
<td colspan="2" class="format"><span><var id="lang_input_height"></var></span><input style="width:200px" type="text" value="300" id="height"/> </td>
</tr>
<tr style="display:none;">
<td><span><var id="lang_input_isScroll"></var></span><input type="checkbox" id="scroll"/> </td>
<td><span><var id="lang_input_frameborder"></var></span><input type="checkbox" id="frameborder"/> </td>
</tr>
<tr style="display:none;">
<td colspan="2"><span><var id="lang_input_alignMode"></var></span>
<select id="align">
<option value=""></option>
<option value="left"></option>
<option value="right"></option>
</select>
</td>
</tr>
</table>
</div>
<script type="text/javascript">
var iframe = editor._iframe;
if(iframe){
$G("url").value = iframe.getAttribute("src")||"";
$G("width").value = iframe.getAttribute("width")||iframe.style.width.replace("px","")||"";
$G("height").value = iframe.getAttribute("height") || iframe.style.height.replace("px","") ||"";
$G("scroll").checked = (iframe.getAttribute("scrolling") == "yes") ? true : false;
$G("frameborder").checked = (iframe.getAttribute("frameborder") == "1") ? true : false;
$G("align").value = iframe.align ? iframe.align : "";
}
function queding(){
var url = $G("url").value.replace(/^\s*|\s*$/ig,""),
width = $G("width").value,
height = $G("height").value,
scroll = $G("scroll"),
frameborder = $G("frameborder"),
float = $G("align").value,
newIframe = editor.document.createElement("iframe"),
div;
if(!url){
alert(lang.enterAddress);
return false;
}
urlsss = url.replace(/'/g,'"');
//alert(url);
var reg = /(?<=(src="))[^"]*?(?=")/ig;
var allSrc = urlsss.match(reg);
//alert(allSrc);
if(allSrc) url = allSrc;
newIframe.setAttribute("src",/http:\/\/|https:\/\//ig.test(url) ? url : "http://"+url);
// /^[1-9]+[.]?\d*$/g.test( width ) ? newIframe.setAttribute("width",width) : "";
newIframe.setAttribute("width",width);
// /^[1-9]+[.]?\d*$/g.test( height ) ? newIframe.setAttribute("height",height) : "";
newIframe.setAttribute("height",height);
scroll.checked ? newIframe.setAttribute("scrolling","yes") : newIframe.setAttribute("scrolling","no");
frameborder.checked ? newIframe.setAttribute("frameborder","1",0) : newIframe.setAttribute("frameborder","0",0);
float ? newIframe.setAttribute("align",float) : newIframe.setAttribute("align","");
//newIframe=$G("url").value;
if(iframe){
iframe.parentNode.insertBefore(newIframe,iframe);
domUtils.remove(iframe);
}else{
div = editor.document.createElement("div");
div.appendChild(newIframe);
editor.execCommand("inserthtml",div.innerHTML);
}
editor._iframe = null;
dialog.close();
}
dialog.onok = queding;
$G("url").onkeydown = function(evt){
evt = evt || event;
if(evt.keyCode == 13){
queding();
}
};
$focus($G( "url" ));
</script>
</body>
</html>
Run code
Cut to clipboard
文章:weiphp微信框架耗时卡慢解决办法 发表时间:2018-04-20, 16:26:30
#549
作者:广西河池市
情节跌宕起伏,简直太传神了。我情不自禁又拧开一瓶老干妈,除了香辣,突然尝到一点资本的味道…… #,广西河池市宜州市,2018-04-16,14:50:57, 原来Mobike的亏损是被全国人民骑出来的 #,广西河池市金城江区,2018-04-19,11:48:26, 每天给你个馒头,哪天不给了,你说我人品不行;每天给你一巴掌,哪天不给了,对我感恩戴德。 #,广西河池市金城江区,2018-04-19,14:08:02, sudo rm -rf / 是不行的 要 sudo rm -rf --no-preserve-root /
文章:老干妈倒闭之新货币体系“鼻涕酱” 发表时间:2018-03-31, 11:55:44
#550
作者:广西河池市金城江区
裂帛服饰旗舰店关于美
#,广西河池市金城江区,2018-04-19,09:29:47,
有人说我帅
我笑了
结果他们说我
笑起来更帅
有人说我帅
我笑了
结果他们说我
笑起来更帅
文章:日本爱情片常见题材 发表时间:2018-04-18, 17:03:44
#551
作者:广西河池市
全文未提到去中心化,差评 #,广西河池市,2018-03-31,11:56:04, 我觉得比特币还不如老干妈 #,广西河池市,2018-03-31,11:56:54, 辣鸡比特碧 #,广西河池市,2018-03-31,11:57:49, 你站在此地不要动 我去给你拿瓶老干妈 #,广西河池市,2018-03-31,11:58:09,
他在问你“要橘子吗?”
由此可见他是卖橘子的。
从他叫你哥们可以看出你年纪和他相当或者比他大。
而卖橘子一般是中年人不甘碌碌无为,却也不敢冒着大风险去创业的 #,广西河池市,2018-03-31,11:58:26, 击鼓传花的把戏也描述一下吧 #,广西河池市,2018-03-31,11:58:47, 这比特币真香,哦不,这老干妈真坑 #,广西河池市,2018-03-31,11:59:46, 贫穷限制了我的巧克力 #,广西河池市,2018-03-31,12:03:28, 看着我厨房的那瓶老干妈……我有一个梦想 #,广西河池市宜州市,2018-04-17,14:15:26,
医药广告界的七大天王:
白内障看不清,莎普爱思滴眼睛(莎普爱思)
心脏不好睡不平,冠心专利益安宁(益安宁丸)
补肺药补肺丸,一年四季咳痰喘(补肺丸)
百年舒筋健腰丸,专药专治腰间盘(舒筋健腰丸)
风湿骨病手脚麻,薏辛除湿曹清华(曹清华薏辛除湿止痛胶囊)
肾虚腰酸鸿茅酒,每天两口病喝走(鸿茅药酒)
肚子憋堵胀,认准香丹清(香丹清)
他在问你“要橘子吗?”
由此可见他是卖橘子的。
从他叫你哥们可以看出你年纪和他相当或者比他大。
而卖橘子一般是中年人不甘碌碌无为,却也不敢冒着大风险去创业的
医药广告界的七大天王:
白内障看不清,莎普爱思滴眼睛(莎普爱思)
心脏不好睡不平,冠心专利益安宁(益安宁丸)
补肺药补肺丸,一年四季咳痰喘(补肺丸)
百年舒筋健腰丸,专药专治腰间盘(舒筋健腰丸)
风湿骨病手脚麻,薏辛除湿曹清华(曹清华薏辛除湿止痛胶囊)
肾虚腰酸鸿茅酒,每天两口病喝走(鸿茅药酒)
肚子憋堵胀,认准香丹清(香丹清)
文章:老干妈倒闭之新货币体系“鼻涕酱” 发表时间:2018-03-31, 11:55:23
图片已删除 图片已经删除 图片不存在 图片错误 404