谷歌浏览器新版本找不到属性方法
使用【版本 100.0.4896.60(正式版本) (64 位)】正常,更新到最新版本【版本 103.0.5060.53(正式版本) (64 位)】,出现异常。
spring boot项目,引入js,init()初始化向后台获取数据,遍历生成节点,每行数据绑定role.f1()方法。点击触发的时候,则报上图错误。
var role={
init(){
},
f1(){
}
}
- 将role.f1()方法写到外面,(该js文件role之外即可),调用role.f1()改成调用f1()
- 将role改名,如role1,也可以恢复正常。
以前项目正常,暂未找到项目其他赋值role的代码。原因未知。
为了对电脑进行保护,已经阻止此应用
为了对电脑进行保护,已经阻止此应用
- win+R输入gpedit.msc回车
windows找不到gpedit.msc请确定文件名 【windows找不到gpedit.msc请确定文件名】是因为系统版本为家庭版,【本地组策略编辑器】被限制使用
以管理员身份运行以下bat程序:(若闪退,管理员身份运行cmd,cd到该.bat文件目录,start test.bat) - 打开组策略之后依次展开【计算机配置】→【Windows设置】→【安全设置】→【本地策略】→【安全选项】,在右侧栏找到并双击打开【用户账户控制:以管理员批准模式运行所有管理员】
- 接下来把该项设置设置为已禁用
@echo off
pushd "%~dp0"
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt
for /f %%i in ('findstr /i . List.txt 2^>nul') do dism /online /norestart /add-package:"C:\Windows\servicing\Packages\%%i"
pause
table
table标签的thead、tbody、tfoot标签,要么不用,要么都用,我从来都是配套使用,直到帮人找错,ta表头直接使用tr,后面又使用tbody,出现异常。
cmd
运行指定文件:
start 路径名
路径中有空格中文等:
start "" "路径"
显示所有环境变量:
set
显示"p"开头的变量:
set p
将变量内容替换为新内容:
set 变量名=变量内容
在变量原本内容上追加内容:
set 变量名=%变量名%;变量内容
setx为全局变量
禁止缩放
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
安卓ios date
new Date("2022-03-15")ios异常
appSource() {
const u = navigator.userAgent;
const isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
if (isiOS) {
return "ios";
} else {
return "andriod";
}
},
el-input无法改变数据
代码:
<el-form ref="dataForm" :model="dataForm" :rules="rules">
<el-form-item >
<el-input v-model="dataForm.userName"></el-input>
</el-form-item>
</el-form>
<el-input v-model="dataForm.userName"></el-input>
<el-input v-model="test"></el-input>
setup() {
const state = reactive({
dataForm: {
userName: ""
},
test: "",
rules: {
tempTitle: [
{required: true, message: '请输入名字', trigger: 'blur'},
]
},
});
return state;
},
情况:
- 输入字母“qwer”,无改变,点击旁边(失焦)则显示“r”,删除键无效,仍然失焦后才消失,(写本文而重写的测试页面,异常情况又不同,不赘述)
- 发现当前页面其他位置input同样情况
- 其他input如果绑定的只有属性,如test:“”,则是正常
- 反复试验,el-form删除或去掉属性,则正常
- 期间网上寻求解决方案,有类似情况。说法为:嵌套太深或上级标签为template,解决方式为:为input绑定@change或@input方法,或传参数$event,方法(methods)为:this.$forceUpdate();
- 表单验证时的ref属性值不能重名,改名即可。(就这?浪费我这么久时间!)
官网模板表单验证就和数据源是重名的,我以前(vue2.X)就是正常的,现在(vue3.X使用了defieComponent、reactive),就不能重名; - 新发现的问题,el-input-number点击增减无效,结果......是后台给的数据类型是String,导致无法修改。
树状结构
var shu=0;
function createList(o,l)
{
for (var j=0;j<=o.length-1;j++){
if (o[j].type==1){
var str = `<ul class='${l==1?"nav navbar-nav":"ggg"}' id='${l==1?"toggle-headNav":"toggle-headNav2"}' style="left: ${shu==1?"0":"66"}px;top:${shu==1?"":"0"}px ">`;
for(var i=0, l = o.length; i<l; ++i)
{
str += `<li class='${o[i].parentId=="1"?"yiji":"erji"}'><a href="javascript:void(0)" data-url="${o[i].hrefUrl}" style="font-weight: 500">${o[i].name}</a>`;
if(o[i].children && o[i].children.length>0){
shu++;
str += createList(o[i].children,2);
}
str += `</li>`;
}
shu=0;
str += "</ul>";
return str;
}
}
}
跨域下载图片
function imgDown(href,name){
let x=new XMLHttpRequest();
x.open("GET", href, true);
x.responseType = 'blob';
x.onload=function(){
let url = window.URL.createObjectURL(x.response);
let a = document.createElement('a');
a.href = url;
a.download = name;
a.click();
}
x.send();
}
下载文件,中文解码
//文件链接解码
downloadExcel(e, name) {
let a = document.createElement("a");
a.setAttribute("download", name);
a.href = `${window.SITE_CONFIG["apiURL"]}/sys/oss/downloadFileLink?key=${e}&fileName=${name}`;
a.click();
}
复制到剪切板
function copyUrl(txt) {
// 创建一个 Input标签
const cInput = document.createElement('input')
cInput.value = txt
document.body.appendChild(cInput)
cInput.select() // 选取文本域内容;
// 执行浏览器复制命令
// 复制命令会将当前选中的内容复制到剪切板中(这里就是创建的input标签)
// Input要在正常的编辑状态下原生复制方法才会生效
document.execCommand('Copy')
// this.$notifice('success', '复制成功') // antd框架封装的通知,如使用别的UI框架,换掉这句
/// 复制成功后再将构造的标签 移除
cInput.remove()
}
注册表shell鼠标右键
win+R→regedit→\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell
新建Idea→新建command→设置数据→"idea路径"(空格)"%1"
"%1"代指打开的文件
对Idea新建字符串值,名为icon(不分大小写),值为idea路径,可不带引号,则右键有对应的图标
Tips
- 不要把项目放C盘,有时会频繁访问文件夹触发系统保护机制;
- ios中不能new Date("2022-01-01"),只能new Date("2022/01/01");
- (大)部分手机和部分版本浏览器不兼容js中replaceAll方法,请用正则
str.replace(/\//g, "-")。
时间date
let startTime=new Date();//本月1号00:00:00
startTime.setDate(1);
startTime.setHours(0);
startTime.setMinutes(0);
startTime.setSeconds(0);
let endTime=new Date(startTime);
if(endTime.getMonth===11){
endTime.setFullYear(endTime.getYear()+1);
endTime.setMonth(0)
}else{
endTime.setMonth(endTime.getMonth() + 1)
}
endTime=new Date(endTime.getTime() -1000 )
idea tomcat utf-8
-Dfile.encoding=UTF-8
表单验证
this.$refs.dataForm.validateField("password");//触发指定输入框验证
this.$refs.dataForm.validate((valid) => {});//全部校验
this.$refs["dataForm"].clearValidate();//关闭校验
电话号码
let txt= `
asefads17312341234阿斯顿发哈0755-4554444而且确认17312341234ads
`
function getPhone(str) {
let regx = /(1[3|4|5|7|8][\d]{9}|0[\d]{2,3}-[\d]{7,8}|400[-]?[\d]{3}[-]?[\d]{4})/g;
str = str.replace(regx, `<a href='tel:$&' style='text-decoration: underline;color: #2878FF;'>$&</a>`)
return str;
}
console.log(getPhone(txt))
跳转电话
<p>联系电话:<a :href="'tel:' + item.phone">{{item.phone}}</a></p>
<meta name="format-detection" content="telephone=yes" />
// 调用拨号功能
callPhone (phoneNumber) {
window.location.href = 'tel://' + phoneNumber
}
清除npm缓存
npm cache clean --force
el-table文本居中
<style>
::v-deep .el-table th,
::v-deep .el-table td {
text-align: center !important;
}
</style>
vue中mounted找不到dom
el-table-column设置header-align="center" align="center"
mounted() {
this.$nextTick(()=> {
setTimeout(()=> {
let el = document.querySelector('.table')
console.log(el)
if(el) {
this.offsetTop = el.offsetTop
window.onscroll = () => this.getInvitationRecordUserList(this)
}
})
})
},
节点还没加载出来,用this.$nextTick(()=>{})包起来,还不行就加setTimeout异步。
el-table的select回填
dialogOpen() {
// 初始化专家勾选
if (this.dialogExperts===true&&this.pageType===true) {
this.dataForm.experts.forEach((item, index) => {
this.experts.forEach((val, i) => {
if (item.id == val.id) {
this.toggleSelection([this.experts[i]]);
}
});
});
this.dialogExperts = false;
}
},
openDetails(row) {
this.$refs.experts.toggleRowSelection(row);
},
handleSelectionChange(val) {
this.dataForm.experts = val;
},
toggleSelection(rows) {
// @click="toggleSelection([tableData[1], tableData[2]])
rows.forEach((row) => {
this.$refs.experts.toggleRowSelection(row);
});
},