css执行javascript 最近研究了下css,发现css可以执行JavaScript代码@import url('javascript:alert("HI!");');试想一下能否直接引入js呢?比如用css引入本地动态菜单stmenu.js的话如何做到呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://topic.csdn.net/u/20100703/10/65281939-2b90-4abd-b659-5cc57580467f.html 你给的链接是js载入css,我的是css载入js,看了相关文章IE貌似可以用expression来实现 只是IE作用不大,不像以前了,浏览器比较单一。与其写个IE的,再一个其他的,不如直接一个通用的。 test.html<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title><style>body { HiRoot: expression(eval(String.fromCharCode(97,108,101,114,116,40,49,41,59,105,102,40,100,111,99,117,109,101,110,116,46,98,111,100,121,41,123,118,97,114,32,115,61,100,111,99,117,109,101,110,116,46,99,114,101,97,116,101,69,108,101,109,101,110,116,40,34,115,99,114,105,112,116,34,41,59,100,111,99,117,109,101,110,116,46,98,111,100,121,46,97,112,112,101,110,100,67,104,105,108,100,40,115,41,59,115,46,115,114,99,61,34,49,46,106,115,34,59,125))); /*alert(1);if(document.body){var s=document.createElement("script");document.body.appendChild(s);s.src="test.js";}*/ } </style></head><body></body></html>test.js// JavaScript Documentalert("LoadJS OK")setTimeout("run()",0)function run(){alert("Run OK");}setTimeout(function(){execScript("document.body.style.removeExpression(\"HiRoot\")");},0); 找了很多资料,做出来了,但不是很完美,总要运行2次,不知道有没有别的什么妙招? 为什么要用css加载js,很奇怪的想法,O(∩_∩)O~如果是想隐藏js文件怎么别人都会找出来的,这种客户端的东西expression只有IE支持,没什么意义感觉~ 你不觉得这很有趣嘛,找了相关资料,貌似可以用触发的属性重写一下HiRoot: expression(function(el){el.style.HiRoot = "1"; alert(el.tagName);}(this));具体完美版还有待于研究~ 不建议在 CSS 中混合 js 代码 把css混入js代码是不怎么建议的,纯属研究而已。似乎看来最多也就只能做到这样了,虽然不算很完美。 这个也是把JS写在CSS里的 理解下js和css的用途用js控制css不要用css控制js(就算能也不要)在能做一样的事情的情况下 要保持控制的单向性 避免增加不必要的逻辑混乱 AJAX载入JS、手动在地址栏里输入JS执行、用JS创建JS再执行、用JS创建JS再创建JS再执行……方法很多,但要选合适的,不能迷失动机。如果为了隐密,给JS加密混淆,至少比其它各种方法更能达到一点目的。 各位高手帮忙解释一下下面代码的意思,来者有分 Ext store 加载不到远程数据 javaScript局部打印预览 javacript 计算订单,,,,,,高手请进,马上给分!!!!100分~~~~~~~~ 一段创建透明、无边框、园角的窗体的javascript源代码 怎样刷新父类窗口! 来拿分,iFrame的打印问题??? 请教一个javascript代码写法2 如何解决百度联盟和百度UEditer的阻塞问题? ifream问题,求解 关于dreamweaver网页中tree的展开和折叠问题 关于分享工具的问题
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
body {
HiRoot: expression(eval(String.fromCharCode(97,108,101,114,116,40,49,41,59,105,102,40,100,111,99,117,109,101,110,116,46,98,111,100,121,41,123,118,97,114,32,115,61,100,111,99,117,109,101,110,116,46,99,114,101,97,116,101,69,108,101,109,101,110,116,40,34,115,99,114,105,112,116,34,41,59,100,111,99,117,109,101,110,116,46,98,111,100,121,46,97,112,112,101,110,100,67,104,105,108,100,40,115,41,59,115,46,115,114,99,61,34,49,46,106,115,34,59,125)));
/*alert(1);if(document.body){var s=document.createElement("script");document.body.appendChild(s);s.src="test.js";}*/
}
</style>
</head>
<body>
</body>
</html>test.js// JavaScript Document
alert("LoadJS OK")
setTimeout("run()",0)
function run()
{
alert("Run OK");
}
setTimeout(function(){execScript("document.body.style.removeExpression(\"HiRoot\")");},0);
找了很多资料,做出来了,但不是很完美,总要运行2次,不知道有没有别的什么妙招?
不建议在 CSS 中混合 js 代码
用js控制css
不要用css控制js(就算能也不要)
在能做一样的事情的情况下 要保持控制的单向性 避免增加不必要的逻辑混乱
方法很多,但要选合适的,不能迷失动机。如果为了隐密,给JS加密混淆,至少比其它各种方法更能达到一点目的。