【小游戏】如何给外部引用的js文件传递参数。
要求:
1、兼容IE6 7 8、Firefox、chrome
加分:
1、第一次发布且完美实现 +20分
2、第一次发布但实现有局限性 +10分
3、非第一次发布但完美实现 +10分
4、之前有发布的解决方案的变种 +5分
如果答案多适当会加分
我先发几个我所知道的解决方案
1、
<script language="javascript">var g = "I'm here";</script><script tpye="text/javascript" src="test.js"></script>
alert(g);
<script tpye="text/javascript" src="test.js?a=1&b=2" id="testjs"></script>
var test = document.getElementById("testjs");var src = test.getAttribute("src");alert(src.substring(src.indexOf('?')+1));
<script tpye="text/javascript" src="test.js" data="a=1&b=2" id="testjs"></script>
var test = document.getElementById("testjs");alert(test.getAttribute("data"));
<script tpye="text/javascript" src="test.js"> var temp = "just test";</script>
var script = document.getElementsByTagName("script");eval(script[script.length-1].innerHTML);alert(temp);
<script> document.cookie = "g=I'm here";</script><script tpye="text/javascript" src="test1.js"></script>
[解决办法]
--test2.html--
<script> location.hash = "g=I'm here";</script><script tpye="text/javascript" src="test2.js"></script>
[解决办法]
--test3.html--
<script> window.name = "g=I'm here";</script><script tpye="text/javascript" src="test3.js"></script>
[解决办法]
大叔那也算啊?
那下面的岂不是也算?
<script>var s = 1;</script><script language="javascript" src="xx.txt"></script>
[解决办法]
一般不赞成在外部js中直接调用或执行函数
一般全局变量可以任何地方调用。
如果实在要用,可以试试下这种方法。
<script tpye="text/javascript" src="test.php?a=1&b=2"></script>
或
document.write('<script tpye="text/javascript" src="test.php?a=1&b=2""></script>");
这样不就可以了!
test.php
<?php
header('content type:text/javascipt'); /通知浏览器是js文件
$a=$_GET['a']
$b=$_GET['b'];
echo '任何javascript';
[解决办法]
汗 还有别的方式吗?
<script language="javascript" src="xx.txt" id="sss"></script>
<script language="javascript">
var arg=1;
var ac=document.getElmentById("sss");
eval(ac.innerHTML+" var c="+arg)
</sctipt>
[解决办法]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <HEAD> <TITLE> New Document </TITLE> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- 没规定不能用jQuery --> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <SCRIPT LANGUAGE="JavaScript"> <!-- $.ajax({ url: "test.txt", success: function(e){ eval(e) say(); }}); //--> </SCRIPT> <script src="test.js"></script> </HEAD> <BODY> </BODY></HTML>
[解决办法]
想了10多分钟实在想不出什么了,JS里的COOKIE,HASH,NAME全被说光了。还有13楼的总结,基本全用上了。只能说来个变体了,换成超级链接,看看能不能出点怪现象!
<a href="test.js?a=5" id='dd'>333</a>
<script type="text/javascript" src="test.js"></script>
test.js
alert(document.getElementById("dd").href.match(/\ba=([^&]*)/)[1]);