本文目录一览:
- js动态加载其他js文件后本页面数据刷新问题?
- 前端动态加载JS
- 为什么静态加载的页没问题,js动态加载的就不出来
- js 动态加载事件的几种方法总结
- 前端只有 js,动态加载 html 内容是什么技术
- 爬取JS动态加载的网站,文字内容为编码
js动态加载其他js文件后本页面数据刷新问题?
这种情况应该是time.js还没有加载完成就输出了GB,GB2。 动态创建的js因为是异步加载,所以可能没有完全加载,就往下执行。 应该需要保证加载完成后,再根据回调函数往下执行,就能保证输出是正确的。
前端动态加载JS
最近机顶盒遇到一种特殊场景需要按需加载js,所以特此记录动态加载JS的方法 这个方法加载的是本地的js,如果要加载非本地js的话,应该要加上crossorigin头。
为什么静态加载的页没问题,js动态加载的就不出来
动态加载的话有可能是因为异步的问题,在js加载之前就访问了该js中的变量
js 动态加载事件的几种方法总结
有些时候需要动态加载javascript事件的一些方法 往往我们需要在JS中动态添加事件,这就涉及到浏览器兼容性问题了,以下谈及的几种方法,我们也常常混合使用。
方法一、setAttribute
var obj = document.getElementById("obj");
obj.setAttribute("onclick", "javascript:alert('测试');");
这里利用setAttribute
指定onclick
属性,简单,很好理解,
但是:IE不支持,IE并不是不支持setAttribute
这个函数,而是不支持用setAttribute
设置某些属性,包括对象属性、集合属性、事件属性,也就是说用setAttribute
设置style
、onclick
、onmouseover
这些属性在IE中是行不通的。
方法二、用attachEvent
和addEventListener
IE支持attachEvent
obj.attachEvent("onclick", Foo);
function Foo() {
alert("测试");
}
也可写在一起
obj.attachEvent("onclick", function(){alert("测试");});
其它浏览器支持addEventListener
obj.addEventListener("click", Foo, false);
function Foo() {
alert("测试");
}
同样也可写在一起
obj.addEventListener("click", function(){alert("测试");}, false);
注意attachEvent
的事件带on
,如onclick
,而addEventListener
不带on
,如click
。
顺便说一下addEventListener
的第三个参数(虽然很少用)
useCapture
- 如果为true
,则useCapture
指示用户希望启动捕获。启动捕获后,所有指定类型的事件将在被指派到树中其下面的任何EventTargets
之前指派给注册的EventListener
。正在通过树向上bubbling
的事件将不触发指定的使用捕获的EventListener
。
综合应用
if (window.attachEvent) {
// IE的事件代码
} else {
// 其它浏览器的事件代码
}
方法三、事件 = 函数
例:obj.onclick = Foo;
这在多个浏览器中均支持,这是属于旧的规范(方法二属于DOM2
的规范),不过由于使用方便,用的场合也比较多。
下面是我的解决办法:
function show() {
alert("Hello, world!!!");
}
obj.setAttribute('onclick', document.all ? eval(function(){show()}) : 'javascript:show();');
前端只有 js,动态加载 html 内容是什么技术
这个是为了防止代码别人盗用,直接把html得代码写进了js里面,源码里面只放一个js得调用,然后就算你拿到js文件也不能马上用,因为一般都会加密,你先要解除加密,然后还要排列好,不然乱七八糟排在一起看的很累。一般没有多少人会去破解,又累又费时间,还不一定能破解,有这个时间都可以做个简单的企业站了。
爬取JS动态加载的网站,文字内容为编码
可以用采集器,直接模拟人操作,网站怎么加载都无所谓,模拟点击,等加载完后提取数据就可以了。