script动态路径调用

script动态路径调用,第1张

楼上的方式是可以实现,但是就是要判断到底距离目标文件的位置;

所以最好就是用相对根路径;

<script type="text/javascript" src="/test/hits/xxxxxjs"></script>

这样的话,无论你在任何位置都可以正确调用你的文件了。

您需要的功能可以利用AJAX来实现。下面是我写的代码读取一个文件并显示出来,供您参考。

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>使用AJAX读取外部文件</title>

</head>

<body>

<div id="txt">外部文件内容</div>

<script>

if ( windowActiveXObject )         // windows 系统

    xml>

看的出来,你不懂浏览器解释标签的顺序。你百度一下就知道了,我这里只是说一下结果。

浏览器在执行脚本前,要把所有的脚本导进来。怎么导进来,直接认script标签。也就是说,浏览器还在不知道是不是变量的前提下,先解释了你的 script 标签。然后发现是错误的!!错误在哪它把你变量的</script>认作结束标签了。(呵呵,毕竟是机器语言,没那么智能,你必须了解它的执行顺序。)然后它把整个String语句弄成错误语句了,就直接把后面输出了。

所以直接答案就是不能让它认做script的结束标签,你要写成类似于这样:

var html ='<div class="post"><' + 'script' + ' src="tophtml" ></'+'script'+'></div>';

先让浏览器的解释器看不出来是结束标签,之后在组装成标签,在append。

哦对了,还有两点要和你说,也许你知道,一个是你用的jquery,必须等所有html文档结构都读进来后才能append,所以你必须把这个核心代码放到 $(function($){ })里面。(不明白就差api中的jQuery(callback)章节)

二一个是你导入的是php,看的出不是脚本语言,你要把它当作text读进来,所以你要加个type="text",像这样:

var html ='<div class="post"><' + 'script' + ' src="tophtml" type="text" ></'+'script'+'></div>';

如果需要用原生js动态的加载另外一个js文件,可以使用原生js的documentcreateElement方法创建script节点,然后更改该节点的type和src属性,最后通过appendChild方法将该节点动态添加到html中,这样就可以了,参考代码如下:

var new_element = documentcreateElement("script");//创建新的script节点new_elementsetAttribute("type", "text/javascript");new_elementsetAttribute("src", "/js/jqueryjs");documentbodyappendChild(new_element);//添加到body节点的末尾

上例中是在body的最末尾添加的,当然同样可以在head中添加引用该js的标签:documentheadappendChild(new_element);

下面的JS代码可以遍历指定表单中的所有元素,并输出元素的值:

<!DOCTYPE html>

<html>

<body>

<form id="frm1" action="form_actionaspx">

First name: <input type="text" name="fname" value="Donald"><br>

Last name: <input type="text" name="lname" value="Duck"><br>

<input type="submit" value="Submit">

</form>

<p>Return the value of each element in the form:</p>

<script>

var x=documentgetElementById("frm1");

for (var i=0;i<xlength;i++)

{

documentwrite(xelements[i]value);

documentwrite("<br>");

}

</script>

</body>

</html>

在head中引用jquery:

<script type="text/javascript" src="/js/jquery-171minjs"></script>

2定义一个text输入框:

<input type="text" value="" id="inputValue"/>

3在自定义函数中根据id获取此text的值:

var temp = $('#inputValue')val();//获取值

alert(temp);//显示

4将输入的 字符串根据 ","分割:

var temp = $('#inputValue')val();

var getStr = tempsplit(",");

5定义一个对象,并打印输入这个对象的值:

var jsonData = {};

jsonDataMainCmdID = 9100;//游戏消息 MDM_GF_GAME

jsonDataSubCmdID = 9012;//用户出牌SUB_C_OUT_CART_WEB

jsonDataChairID = 0;

jsonDataCardCount = getStrlength;

jsonDataCardData = temp;

var str = JSONstringify(jsonData);

alert(str);

输出 text中输入的值:

输出一个对象的值:

下面介绍三种异步执行加载Js 脚本的方法。

1、直接documentwrite

<script language="javascript">

documentwrite("<script src='testjs'><\/script>");

</script>

2、动态改变已有script的src 属性

<script src='' id="s1"></script>

<script language="javascript">

s1src="testjs"

</script>

3、动态创建 script元素

<script>

var oHead = documentgetElementsByTagName('HEAD')item(0);

var oScript= documentcreateElement("script");

oScripttype = "text/javascript";

oScriptsrc="testjs";

oHeadappendChild( oScript);

</script>

注 ,

这三种方法都是异步的,所以在采用这类方法动态加载Js 的同时,主界面的Js脚本是继续执行的,所以可能出现通过异步加载的Js代码得不到预期的效果的情况。这时候可以考虑采用Ajax加载Js的方法。

大概原理 :用XML>

以上就是关于script动态路径调用全部的内容,包括:script动态路径调用、如何用JS获取外部脚本的文件内容、js变量连接引入<script>文件问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9535225.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存