前端遇到的问题及解决办法

一、如遇到除个别浏览器外(谷歌) 其他浏览器的onclick事件报错和不执行时 可能的原因:
1,事件本身不支持某个浏览器事件
2,事件名称和某个id或者name相冲突
3,js未调用事件名称

二、ios系统 input获取焦点时 宽度自动放大 解决的办法:
1,加

<meta name ="viewport" content ="initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
<meta name="app-mobile-web-app-capable" content="yes">

2.input 内的字体大小不能小于16px
ios 系统input聚焦问题
给input绑定点击事件 触发focus事件

三、每个页面抛出关键字以便能被搜索到

<meta name="Keywords" Content="债务,看看 ">
<meta name="description" Content="债务,看看 ">

//关键字用“,”号隔开

四、pc端页面 如果只兼容谷歌浏览器的情况下 解决办法:
报错:SCRIPT1004: 缺少 ‘;’ let 不支持IE浏览器
报错:SCRIPT5009:点击事件未被定义 原因是因为SCRIPT1004报错 无法找到相应的点击事件
当需要请求接口时:用ajax时 传值时 不需要转化 直接定义对象

五、本地页面引用的文件,一定按照准确的地址进行调用 否则当整个文件的root发生变化时,文件调用的方法和引用的文件将报错(404)
如果直接是template 或者是static文件下的文件 调用文件或接口时 ,只需要./ ,相当于在根目录。其他文件夹下面的文件,根据层级找到相应的目录

六、html文件不能直接打开(任何浏览器)
1.将桌面的浏览器 属性找到文件位置,创建快捷方式 将快捷方式放在桌面
2.打开浏览器 工具->Internet设置 -> 常规设置 自己手动添加地址或者使用空白页
3.点击浏览器 右键->属性->快捷方式->目标 将exe后面的其他的网址删掉
4.下载360急救包 进行木马病毒等等进行查杀
5.运行->regedit ->将yes2345相关东西删掉

七、当引用组件时,有时候组件上有下划线或者上划线
找到组件名 :after或者:before{height:0} 这样可以进行隐藏去掉
当去循环某个组件时 ,对于最后一个样式要不一样时
使用选择器 :nth-of-type(n){} //n 可以是数字、关键词或公式
:nth-last-of-type(1) :nth-first-of-type()

八、当本地不能放太多静态文件时,放入阿里云上
阿里云官网-控制台-登录-oss-上传文件

九、当选择单选框后,有两个按钮,一个按钮是需要清空所选的内容的,一个按钮是展示已经选择了的相关信息,如果是先选择单选框,展示信息,再清空信息,是没有错的,但是如果先清空消息,再展示信息的话,此时是没有信息的,怎么做?
其实很好办,如果选择之后,需要按清空按钮,此时,就将选中的单选让其不选中状态

十、显示不完是用…省略

       overflow: hidden ;
		display: -webkit-box ;
		-webkit-line-clamp: 2 ;   //几行显示
		-webkit-box-orient: vertical ;
		word-break: break-all ;

十一、微信小程序聊天报错,websocket连接不上

sendSocketMessage:fail WebSocket is not connected

可以在本地进行连接 打开 cmd
npm install ws
然后运行 npm run dev

十二、vue冒泡处理
在需要阻止冒泡的地方 加@click.stop 或@tap.stop

十三、当关闭页面时,input框弹出的软键盘不消失
在监听退出页面或隐藏页面的钩子函数中、关闭软件盘
例如uniapp中
onBackPress() {
uni.hideKeyboard()
}
十四、localstorage和sessionstorage的区别
1.localStorage生命周期是永久,关闭或退出程序,不会清除缓存数据
2.sessionstorage只对当前会话有用,若退出程序,缓存将清除

十五、当获取的字符串需要转换成JSON格式时,JSON.parse()方法对某个中文字段没法转换的时候,可用eval()

var result1 =''
result1=res.result
	that.result=eval("(" + result1 + ")")

十六、数字直接转换成中文形式

rp (n) {
	var cnum = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
			 var s = '';
			    n = '' + n; // 数字转为字符串
			    for (var i = 0; i < n.length; i++) {
			      s += cnum[parseInt(n.charAt(i))];
			    }
			    return s;
			}

十七、ios编译调试
下载iTunes 爱思助手
如果手机连接不上hbuilderx
1,usb线问题
2,驱动未安装
3,itunes版本问题,可更换版本
十八、uniapp编译时出现如下错误
错误提示
暂未解决,求解决方法

十九、hbuilderx编译到小程序时
错误提示
微信小程序设置-安全设置-服务端口开启
如果开启后还出现,目前暂时未得到解决,望大佬指教

二十、uniapp安卓本地(离线)打包流程
转连接

二十一、某端正常,其他端异常,uniapp参考指南:
https://uniapp.dcloud.io/matter

二十二、checkbox checked不生效问题
1,查看是否css冲突,特别是(颜色改变是否添加了!important)
2,是否对数组进行添加字段设置,添加某个字段来判断选中与否,不能直接对数组进行添加,需给定变量再添加,再赋值
二十三、ios文字转语音 (使用系统提供的接口)

iosSpeechToVoice(text) {
				console.log(text)
				var AVSpeechSynthesizer = plus.ios.importClass('AVSpeechSynthesizer');
				var AVSpeechUtterance = plus.ios.importClass('AVSpeechUtterance');
				var AVSpeechSynthesisVoice = plus.ios.import('AVSpeechSynthesisVoice');
				var sppech = new AVSpeechSynthesizer();
				var voice = AVSpeechSynthesisVoice.voiceWithLanguage('zh-CN');
				var utterance = AVSpeechUtterance.speechUtteranceWithString(text);
				// utterance.plusSetAttribute("rate",30.1);
				utterance.setVoice(voice);
				sppech.speakUtterance(utterance);
				//停止
				sppech.stopSpeakingAtBoundary(0);
				//暂停
				sppech.pauseSpeakingAtBoundary(0);
				//继续
				sppech.continueSpeaking(0);
				plus.ios.deleteObject(voice);
				plus.ios.deleteObject(utterance);
				plus.ios.deleteObject(sppech);
			},

详细解释

二十四、获取wifi名称(ssid)时,获取不到的原因
1,未获取到该app的定位权限

二十五、uniapp编译到h5时
1,manifest.json中配置
在这里插入图片描述
在这里插入图片描述
二十六:app有定时器时,要在后台一直运行,但安卓系统一段时间后会将进程退掉,怎么处理
1,将App锁住或者允许后台高耗电
2,可在App中写一段音频播放,设置该音频的声音为0
3,允许后台自启动

二十七:ios中 margin-top不生效问题
1,在底部给一个空盒子,填充高度
2,用定位

二十八:文字渐变色
转:通过CSS实现 文字渐变色 的两种方式

二十九:wss连接的一些坑
转:wss连接

三十: 使用mpvue-echarts时遇到的问题
(1)App报表出现闪烁数据不准确问题(由于canvasId相同导致)
解决方法:将canvasId更改为唯一值
(2)当有多个页签时,每个页签内有几个图表时,选择标签栏不切换的问题(具体什么原因导致,暂时无法查询)
解决办法:切换页签时再次调用相关接口并初始化(进入页面时onload不能初始化)
(3)浏览器上不显示、报错,app、小程序显示图形时
解决办法:echarts.simple.min.js中function(t)更换成function(t, window, document)
三十一:tofixed 四舍五入问题

function toFixed(number, m) {
    if (typeof number !== 'number') {
        throw new Error("number不是数字");
    }
    let result = Math.round(Math.pow(10, m) * number) / Math.pow(10, m);
    result = String(result);
    if (result.indexOf(".") == -1) {
        if(m != 0){
            result += ".";
            result += new Array(m + 1).join('0');
        }
    } else {
        let arr = result.split('.');
        if (arr[1].length < m) {
            arr[1] += new Array(m - arr[1].length + 1).join('0')
        }
        result = arr.join('.')
    }
    return result
}```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值