HTML script 元素
<script> 标签用于定义客户端脚本,比如 JavaScript。
script 元素既可包含脚本语句,也可通过 src 属性指向外部脚本文件。
必需的 type 属性规定脚本的 MIME 类型。
JavaScript 最常用于图片操作、表单验证以及内容动态更新。
下面的脚本会向浏览器输出“Hello World!”:
<script type="text/javascript">
document.write("Hello 天华信息教育!")
</script>
<noscript> 标签
<noscript> 标签提供无法使用脚本时的替代内容,比方在浏览器禁用脚本时,或浏览器不支持客户端脚本时。
noscript 元素可包含普通 HTML 页面的 body 元素中能够找到的所有元素。
只有在浏览器不支持脚本或者禁用脚本时,才会显示 noscript 元素中的内容:
<script type="text/javascript">
document.write("Hello 天华信息教育!")
</script>
<noscript>Your browser does not support JavaScript!</noscript>
实例
如何将脚本插入 HTML 文档。
<html>
<body>
<script type="text/javascript" >
document.write("<h1>Hello 天华信息教育!</h1>")
</script>
</body>
</html>
HTML基础教程:脚本
如何应对不支持脚本或禁用脚本的浏览器。
<html>
<body>
<script type="text/javascript">
document.write("Hello 天华信息教育!")
</script>
<noscript>Sorry, your browser does not support JavaScript!</noscript>
<p>不支持 JavaScript 的浏览器将显示 noscript 元素中的文本。</p>
</body>
</html>
HTML基础教程:脚本
希望以上可以解决你们心中的一些疑惑,其中可能会有不对的地方或是需要改进的地方,欢迎留言纠正。感觉还不错欢迎关注收藏转载哦
载脚本长期以来一直是互联网可用性的重要组成部分。一般都是在服务端来实现的居多,随着技术的发展,前后端分离技术的兴起,以前很多后端的事也更多让前端来实现,我开始寻找一种无需服务器就可以强制下载的方法,经过一番努力,终于我找到了它,就在Firefox Devols Debugger中,有兴趣的朋友可以自己去试一下!
后端的活我也能干了
废话不多说,直接上脚本。
1、javascript脚本
function downloadFile(data, fileName, type="text/plain") {
// 创建不可见的元素
const a = document.createElement("a");
a.style.display = "none";
document.body.appendChild(a);
// 将href设置为要下载数据的blob表示形式
a.href = window.URL.createObjectURL(
new Blob([data], { type })
);
// 使用下载属性设置所需的文件名
a.setAttribute("download", fileName);
// 通过模拟点击触发下载
a.click();
// 清理
window.URL.revokeObjectURL(a.href);
document.body.removeChild(a);
}
2、html元素
<form onsubmit="onFormSubmit(); return false;"> <p> <label for="demo_filename">文件名称:</label><br> <input type="text" id="demo_filename"> </p> <p> <label for="demo_content">内容:</label><br> <textarea id="demo_content"></textarea> </p> <button type="submit">下载</button> </form>
3、运行效果
是不是很简单,这样做的函数非常小,并且依赖于URL.createObjectUrl,函数注入<a>元素,将其设置为Blob值设置为目标文件的文本内容,并单击下载按钮以触发下载。元素在过程中保持隐藏状态,并在click()调用,一旦函数被调用,浏览器的下载提示就会显示出来,createObjectURL和Blob这两种技术才是真正的魔力!
后端工程师表示可以早点下班了
我们都知道Python可以很轻松地实现某些功能,而且还可以编写网页,比如Remi,Pysimplegui,但是操作JavaScript这种浏览器的脚本语言,还是第一次听说,小编也是第一次听说,于是就跟大家脑补这一知识。
是一个可以执行JavaScript脚本的Python模块,可以与网页上的JavaScript进行交互,这样就能更加精准地获取到网页中的加密内容,如果用Python中的网络模块进行请求,会无法解密文档中的加密内容,这个时候使用我们的PyExecJS可以很方便到的解密网页中的加密内容,当然这得你会Js逆向才可以。不过要想PyExecJS解析JS语句没毛病,还得整个Js语言解析环境,这里推荐NodeJS,尴尬。我们来看下PyExecJs的用法:
import execjs
aa=execjs.eval("'one|two|three'.split('|')") #执行JavaScript代码,将字符串分割形成数组
print(aa)
e=execjs.compile(''' #编译一个表达式
function add(x,y){
return x+y;
}
''')
print(e.call('add',10,20))#调用编译好的函数并且赋值也可以通过获取引擎来运行我们的语句,如下:
print(execjs.get().eval('1+1'))print(execjs.get().name)这里JavaScript的解释引擎是JScript,我们还可以使用自己指定给力的引擎,比如“Nodejs”。
import execjs
import os
os.environ["EXECJS_RUNTIME"] = "Node"
print(execjs.get().name)也可以手动指定引擎,如下:
js1=execjs.get(execjs.runtime_names.JScript)
print(js1.eval('1'))
js2=execjs.get(execjs.runtime_names.Node)
print(js2.eval('2'))这个我觉得算是比较好的了,可以说是一个综合体,它不需要依赖别的环境,可以独立运行Js文件,只不过它的运行速度可能会稍微慢一点而已,但是这都不叫事。下面我们来看看它有哪些神器的功能吧。
import js2py
aa=js2py.eval_js(
'''
var i=0;
for(var c=1;c<6;c++){
console.log(c);
}
'''
)
print(aa)我们可以把JS文件写入文件中,以便我们进行调用,如下:
1.js
function f(aa){
if(aa>11){
console.log('OK')
}else{
console.log('Fail')
}
}Python文件
import js2py
with open('1.js','r') as f:
aa=js2py.eval_js(f.read())
print(aa(11))这里我们以淘宝为主,我想整它的JS脚本文件,如下:
import execjs
import requests
import re
url = 'https://ai.taobao.com/?pid=mm_26632323_6762370_25910879'
res=requests.get(url).text
js=re.findall(r'<script>(.*?)</script>',res)
print(js,'\n')
js1=re.sub(r'eval\(','return(',js[0])
html="function getLego2WPK(){" + js1 + "};"
ctx = execjs.compile(html)
temp = ctx.call('getLego2WPK')
print(temp)基于Google的V8引擎打造,遗憾的是目前只支持Python2版本,而且已不再维护,建议Python2的小伙伴可以去试试。
本文主要盘点了3个可以操作JavaScript的Python库,分别是PyExecJS、Js2Py和PyV8,只要我们用好了这些模块以后玩爬虫就能更加技高一筹,并且准确率更高了。
------------------- End -------------------
看到下面的资料了吗,我还有很多哦!快来私信我领取吧!
带你从Python入门到就业!错过就莫得啦!
*请认真填写需求信息,我们会在24小时内与您取得联系。