
B-JavaScript
小妖666
私信未及时回复请加v:lvlvlv55558888
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
React TypeError: results is undefined pageTranslator.js:456:25
React TypeError: results is undefined pageTranslator.js:456:25原创 2022-11-10 10:29:02 · 605 阅读 · 0 评论 -
Can‘t bind to ‘ngForOf‘ since it isn‘t a known property of ‘container‘
使用 *ngFor *ngIf 时报错Can't bind to 'ngForOf' since it isn't a known property of 'div'原创 2021-06-20 12:14:47 · 1939 阅读 · 0 评论 -
怎么通过 tsc 将 angular 项目编译成 node 可运行的 js 文件
我们知道 webpack 可以将 angular 打包成静态文件,但是用起来太麻烦。有没有简单的方法,因为 angular 使用的是 typescript。所以直接用 typescript 的 tsc 编译命令即可。通过 ng new angular 新建个 angular 项目tsconfig.json/* To learn more about this file see: https://angular.io/config/tsconfig. */{ "compileOnSav原创 2021-03-31 17:33:17 · 714 阅读 · 0 评论 -
Electron 最大化的高度设置不生效 maxHeight
Electron 设置最大化时高度小一些,但是好像并没有生效原来只设置 maxHeight 不行,还得设置 maxWidth 才可以原创 2021-03-27 23:14:04 · 1181 阅读 · 0 评论 -
python 执行 js 脚本
安装pip3 install PyExecJS新建 test.pyimport execjsctx = execjs.compile("""function add(x, y) { return x + y;}""")print(ctx.call("add", 1, 2))执行 python test.py成功执行,现在试着执行 js 文件test.jsfunction add(x, y) { return x + y;}test.pyim原创 2021-03-19 18:33:12 · 975 阅读 · 0 评论 -
前端判断数据类型方法
法一:typeoftypeof undefined // "undefined"typeof false // "boolean"typeof 'aaa' // "string"typeof 123 // "number"typeof {} // "object"typeof [] // "object"typeof null // "object"typeof function(){} // "function"可以发现当数据是 object,array,null 时,全部返回 o原创 2021-03-19 15:59:30 · 4116 阅读 · 0 评论 -
编码格式转换方法
控制台编码格式修改https://blog.youkuaiyun.com/runAndRun/article/details/103072938?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogComm原创 2022-11-15 07:58:18 · 3915 阅读 · 0 评论 -
ajax 的 response 里的 Content-Type 编码格式好像不能改
因为需要将 charset 设置成 sjis 编码格式,但是charset 不知为什么怎么设置好像都是 utf-8原来是因为我用了 express 搭建的后台,用 PHP 就不会有这个问题。下面是 express 的代码。express 为什么不好使,暂时不清楚。index.html<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title>AJ原创 2021-03-13 23:10:38 · 562 阅读 · 0 评论 -
Buffer转成ArrayBuffer后再转成Blob
Buffer -> ArrayBufferconst arraybuffer = new Int8Array(buffer.data);ArrayBuffer -> Blobconst blob = new Blob([arraybuffer], { type : 'application/pdf'});项目案例:前端通过 ajax(responseType='blob')获取文件数据进行下载。代码如下,downloadFromS3 是共通方法通过 AWS S3 获取...原创 2021-03-01 19:53:33 · 6608 阅读 · 0 评论 -
IndexedDB:浏览器里内置的数据库
参照 http://www.ruanyifeng.com/blog/2018/07/indexeddb.html随着浏览器的功能不断增强,越来越多的网站开始考虑,将大量数据储存在客户端,这样可以减少从服务器获取数据,直接从本地获取数据。通俗地说,IndexedDB 就是浏览器提供的本地数据库,它可以被网页脚本创建和操作。IndexedDB 允许储存大量数据,提供查找接口,还能建立索引。这些都是 LocalStorage 所不具备的。就数据库类型而言,IndexedDB 不属于关系型数据库(不支持 S原创 2021-02-19 15:31:04 · 720 阅读 · 0 评论 -
js 如何复制内容到剪切板 最新方法
使用 Clipboard API and eventshttps://w3c.github.io/clipboard-apis/#clipboard-event-copy async function copy() { await navigator.clipboard.writeText("Howdy, partner!"); }原创 2021-01-20 10:11:53 · 1053 阅读 · 0 评论 -
angular Observable 怎么自动取消订阅
rxjs 的 Observable(可观察对象)极大的方便了我们的开发,但是当 subscribe(订阅) 没有多次时,前一个订阅没有取消,导致订阅方法被执行了多次。 ngOnInit(): void { this.query.select().subscribe((data) => { console.log(data); }); }这种情况怎么办呢,可以手动取消订阅,但是有没有办法在 页面Destroy 后自动取消订阅呢?使用 until-destr原创 2021-01-16 17:00:35 · 1037 阅读 · 0 评论 -
js 如何对特殊字符进行转义
在生成 csv 文件时,遇到文件内容是下面 json 格式的,需要对特殊字符进行转义'{"font":{"size":11,"name":"Calibri"},"url":"https://www.bejson.com/"}'参照 lodash 的转义写法如下:const reRegExpChar = /[\\"'()[\]{}|]/g;const reHasRegExpChar = RegExp(reRegExpChar.source);/** * Escapes the `Reg原创 2021-01-09 23:06:40 · 6908 阅读 · 0 评论 -
express 使用SSE轮询
SSE是客户端请求服务器后,服务器每隔一段时间向客户端发送数据(是单向的)。详细可参照:http://www.ruanyifeng.com/blog/2017/05/server-sent_events.htmlSSE 的本质严格地说,HTTP 协议无法做到服务器主动推送信息。但是,有一种变通方法,就是服务器向客户端声明,接下来要发送的是流信息(streaming)。也就是说,发送的不是一次性的数据包,而是一个数据流,会连续不断地发送过来。这时,客户端不会关闭连接,会一直等着服务器发过来的新原创 2021-01-03 20:59:01 · 1552 阅读 · 0 评论 -
angular 的 preventDefault 不好使
今天想阻止下 a 标签的默认跳转行为,结果发现不好使。代码如下:<a href="/create" (click)="export($event)">test</a> export(event): void { console.log(event); event.preventDefault(); }是因为没有加 return false,改为下面这样就好了。 export(event): boolean { console.lo原创 2020-12-30 13:03:54 · 900 阅读 · 0 评论 -
webpack 升级问题 webpack.NamedModulesPlugin is not a constructor
用最新版本 webpack 时出错:webpack.NamedModulesPlugin is not a constructor提示用 use config.optimization.namedModules 替换 'NamedModulesPlugin' is deprecated这是我的配置文件webpack.config.jsconst path = require("path");const HtmlWebpackPlugin = require("html-webpack-p原创 2020-12-28 13:00:14 · 16267 阅读 · 4 评论 -
git commit 代码提交规范
我们在代码提交时 git 的 commit 信息是很重要的,但是每次写的时候总想偷懒怎么办,咱们可以制定个规范必须按照某种格式提交注释。法一:设置 git commit 模板在项目中建立 .git_template 文件,内容可以自定义:.git_templatetype:description:运行如下命令:git config commit.template .git_templategit commit 时会出现上面的模板这种方法只是规范了一些,但是没有校验方式原创 2020-12-08 16:58:51 · 2346 阅读 · 1 评论 -
Webpack 5: The ‘compilation‘ argument must be an instance of Compilation
webpack5报错: TypeError: The 'compilation' argument must be an instance of Compilation似乎是webpack5和HtmlWebpackPlugin的兼容性问题解决办法可以安装4.X的wepback,或是安装5.X的html-webpack-plugin没有最新的 5.x版本,只能安装5.0.0-alpha安装: npm install html-webpack-plugin@5.0.0-alpha.14原创 2020-12-01 17:11:21 · 2585 阅读 · 0 评论 -
form 表单 input 敲击回车冒泡会触发附近button的click事件
form 表单 input 敲击回车冒泡会附近按钮的 click 事件<!DOCTYPE html><html><body><form action="/demo/demo_form.asp">First name:<br><input type="text" name="firstname" value="Mickey"><button type="text" onclick="changeText('bu原创 2020-11-11 16:48:50 · 1528 阅读 · 1 评论 -
js 中布尔值为false的六种情况
js 常用判断中 true false 情况:对象为true;零为false;非零数字为true;非空字符串为true;空字符串为法false;(空字符串,中间有空格时也是true)其他为false;不同数据类型转化为布尔值的结果 数据类型 转为true的值 转为false的值 Boolean true false String 任何非空字符串 “”(空字符串) Number 任何非零数字值(包括无穷大) 0 和 NaN O原创 2020-11-10 22:59:45 · 1174 阅读 · 0 评论 -
npx 介绍
npm 的有些命令只能通过package.json 里的scripts 里定义然后执行命令,但是 npx 可以直接执行node_module 包中的命令。比如:执行:npm gulp start:dev会提示找不到命令执行:npx gulp start:dev就可以执行命令了...原创 2020-10-30 14:11:16 · 1607 阅读 · 0 评论 -
JS addEventListener多次绑定同一事件,触发多次
今天项目上遇到一个问题,是因为addEventListener绑定事件时,执行了多次,导致执行了多次事件。在不能让绑定事件执行一次的情况下有没有办法解决这个问题呢?模拟代码:function handleAction (event) { console.log('i am action', event);}var btn = document.getElementById('button');btn.addEventListener('click', event => handleA原创 2020-09-25 13:25:09 · 11854 阅读 · 0 评论 -
ionic5 新建组件提示 ‘app-footer‘ is not a known element
新建footer组件在home组件里调用的时候提示:'app-footer' is not a known element: 1. If 'app-footer' is an Angular component, then verify that it is part of this module. 2. If 'app-footer' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of th原创 2020-09-20 22:30:06 · 925 阅读 · 0 评论 -
JavaScript神奇的魔法代码
R = 0;x1 = .1;y1 = .05;x2 = .25;y2 = .24;x3 = 1.6;y3 = .24;x4 = 300;y4 = 200;x5 = 300;y5 = 200;px = 'px';DI = document.images;DIL = DI.length;function A() { for (i = 0; i < DIL; i++) { DIS = DI[i].style; DIS.position =.原创 2020-09-18 13:27:56 · 353 阅读 · 0 评论 -
直接运行ts文件
想用 ts 学习 Observable 的使用,又不想整个运行 angular 程序,所以想直接运行某一个ts文件。法一:将 ts 编译成 js,然后运行 js 文件home.tsconst { Observable } = require( 'rxjs');const observable = new Observable(subscriber => { subscriber.next(1); subscriber.next(2); subscriber.next(3);原创 2020-09-01 13:35:55 · 10780 阅读 · 0 评论 -
简单搭建本地服务器预览打包后的静态文件
二、使用 express安装 expressnpm install express -g新建dist.tsconst express = require('express');const path = require('path');const app = express();// 访问静态资源文件app.use(express.static(path.join(__dirname, 'dist')));// 注意此时静态文件不是根路径了,打开会报错// 转到 in...原创 2020-08-29 10:21:29 · 728 阅读 · 0 评论 -
用 github 搭建自己的 angular 小网站
我使用的是基于 angular 的 ionic 框架,因为组件很丰富,并不需要自己去优化页面。gitHub 下新建reallyEasy 项目点击 settings第一选项 Options 拉到最后 GitHub Pages配置好点 Save最上面是你的网站网址新建 ionic 项目更改 index.html 文件<base href="/" /> 改为 <basehref="./"/>不然发布到 github 后会导致加载资源失败...原创 2020-08-29 10:06:49 · 599 阅读 · 0 评论 -
No component factory found for Tab2Page. Did you add it to @NgModule.entryComponents?
今天用 ionic 弹出模态框时报错:No component factory found for Tab2Page. Did you add it to @NgModule.entryComponents?原创 2020-08-15 14:13:57 · 773 阅读 · 1 评论 -
No provider for ModalController
今天用 ion-modal 时报错:No provider for ModalController奇怪明明是按照官方文档操作的呀,最后发现是因为该组件的 module.ts 里没有引入 IonicModuleimports: [ IonicModule, ],原创 2020-08-15 12:24:45 · 557 阅读 · 0 评论 -
ionic 在iphone上 overflow-y: scroll无效
只用 ion-content 在iphone上滚动条不出来,解决办法<ion-contentforceOverscroll="true"scrollY="true">原创 2020-08-07 09:55:57 · 799 阅读 · 0 评论 -
Ionic 调用 Device 设备 Api 获取手机的设备信息
安装相关的设备插件cordova 需要安装cordova-plugin-device 插件ionic cordova plugin add cordova-plugin-devicenpm install @ionic-native/device在 app.module.ts 引入import { Device } from '@ionic-native/device/ngx'; providers: [ Device, ]使用auth-desktop.ts.原创 2020-08-05 22:24:42 · 708 阅读 · 0 评论 -
angular通过platform获取操作系统版本
现在项目要实现一个功能,android 1.x - 5.x , ios 1.x -10.x 的情况下网站不可访问,但是会进入一个假画面。功能就是怎么实现判断操作系统和版本,通过 platform.js 库可以轻松实现比原生的要简单的多。首先将下载好的 platform.js 放到assets\js 目录下调用方法:import * as platformjs from 'src/assets/js/platform.js';console.log(`os.family: ${platf.原创 2020-08-04 12:08:41 · 779 阅读 · 0 评论 -
前端nginx代理跨域
nginx反向代理接口跨域跨域原理: 同源策略是浏览器的安全策略,不是HTTP协议的一部分。服务器端调用HTTP接口只是使用HTTP协议,不会执行JS脚本,不需要同源策略,也就不存在跨越问题。实现思路:通过nginx配置一个代理服务器B做跳板机,通过B访问服务器C,因为B不是浏览器所以不会有和跨域问题,但是浏览器A想要访问B还是会有跨域问题,但是可以在B做手脚,通过CORS跨域资源共享(设置Access-Control-Allow-Origin)允许A进行跨域。因为都是通过本地搭建的服务,只是端原创 2020-07-30 11:42:04 · 49 阅读 · 0 评论 -
angular jsonp跨域理解
先不着急在angular下怎么用,慢慢理解jsonp的原理。ajax请求受同源策略影响,不允许进行跨域请求,而script标签src属性中的链接却可以访问跨域的js脚本(因为需要访问公共资源的js文件如果不允许跨域,那只能将公共资源的js文件放到站点下,这样会增加网站负担),利用这个特性,服务端不再返回JSON格式的数据,而是返回一段调用某个函数的js代码,在src中进行了调用,这样实现了跨域。大意是通过跨域的js里执行handleCallback函数,而这个函数是在本地定义的,这样就可以实现跨域了原创 2020-07-27 02:03:35 · 726 阅读 · 0 评论 -
Angular 动画简介
https://www.jb51.net/article/148539.htm原创 2020-07-19 10:58:30 · 606 阅读 · 0 评论 -
position fixed 在ios上滚动不固定问题
加上transform: translate3d(0,0,0);原创 2020-07-18 11:33:16 · 2495 阅读 · 0 评论 -
html模板里的表达式不能用小于号
今天用angular写*ngIf="item.cnt<=5"这个表达式的时候报错,他将<后面的东西当做html标签来看了,怎么办呢可以用html转义字符来表示小于号<换成下面就可以了*ngIf="item.stockCnt<=5"...原创 2020-06-18 11:03:08 · 2762 阅读 · 0 评论 -
angular 路由传参的三种方式
1.问号后面带的参数url:/goods?key=1html调用方法:ts调用方法:获取参数方法:this.route.queryParams.subscribe(queryParams=> { console.log(queryParams.key);});2.冒号形式url:/goods/1路由路径配置:'goods/:key'html调用方法:<a [routerLink]="['/goods', '1']">跳转</a&g...原创 2020-05-16 14:31:51 · 4370 阅读 · 0 评论 -
Angular路由--参数快照和参数订阅区别
1.参数快照snapshot画面初始化的时候url是什么,参数就是什么,之后再改变url参数刷新页面,取到的值还是初始化时候的值this.key= this.route.snapshot.queryParams['key'];2.参数订阅 subscribe订阅,只要Url有变化,就会调用这个方法。url参数变化后刷新页面会取到新的值this.key= this.route.queryParams.subscribe((queryParams: Params) => consol.原创 2020-05-11 13:49:13 · 939 阅读 · 0 评论 -
angular 模板表达式想用正则怎么办
angular 模板表达式想用正则,但是会报 Template parse errors[title]="title.match(/\d/)"那么怎么办呢?可以先定义好正则变量,然后在模板里引用这个变量就可以了regexp:RegExp=/\d/;模板引用:[title]="title.match(regexp)"...原创 2020-05-09 22:54:35 · 505 阅读 · 0 评论