我想知道是否可以将任何变量传递给外部 java脚本文件
例如
我这个
<script type="text/javascript" src="gallery.js"></script>
我想知道是否可以将参数传递给该脚本文件,如果是,我该如何在外部文件中读取它?也许这样的东西:???
<script type="text/javascript" src="myscript.js?id=123"></script>
谢谢
答案 0 :(得分:2)
<script type="text/javascript">x = <?php echo $x; ?>;</script>
<script type="text/javascript" src="gallery.js"></script>
现在在gallery.js
中,可以使用JavaScript变量$x
访问PHP变量x
的值。确保生成语法正确的JavaScript。
答案 1 :(得分:2)
您没有“将变量传递给外部脚本”,而是下载脚本,并使用常规函数调用传递变量,在客户端计算机中执行脚本。
如果javascript代码要在服务器中执行,那么您可以使用数据库临时保存值或使用服务器端javascript
如果javascript代码是由第三方执行的,与客户端或主机无关,那么您必须将值存储在数据库中。
答案 2 :(得分:1)
单独使用javascript,你可以这样做:
<script type="text/javascript">
function $_GET(q,s) {
s = s ? s : window.location.search;
var re = new RegExp('&'+q+'(?:=([^&]*))?(?=&|$)','i');
return (s=s.replace(/^?/,'&').match(re)) ? (typeof s[1] == 'undefined' ? '' : decodeURIComponent(s[1])) : undefined;
} </script>
然后以这种方式使用javascript函数:
// this code would print "hello world" if it was at http://localhost/index.php?var1=hello&var2=world
var var1 = $_GET('var1');
var var2 = $_GET('var2');
document.write(var1 + " " + var2);
要从javascript的src标记中获取所需的参数,您可以执行以下操作:
// get the src parameter and split it down to the search query string
var src = document.getElementById('example').src;
params = src.split('?');
var var1 = $_GET('var1','?'+params[1]);
归功于Josh Fraser,我从这个答案中解释了这个问题。 http://www.onlineaspect.com/2009/06/10/reading-get-variables-with-javascript/
答案 3 :(得分:1)
tl; dr,是的,但你需要使用服务器端语言
这似乎是解释Web服务器 - 客户端交互的细节的好时机。这是最基本的解释:
当客户端请求文件(页面,图片或脚本)时,服务器会在相应的文件夹中查找该文件。如果找不到,它会发回一个熟悉的404代码,或者如果找到它,它会发回该文件的内容(当然包装在http头文件中)。
对于动态页面(如.php
文件),Web服务器的行为必须略有不同。在将它们发送到客户端之前,服务器通过称为解析器的程序运行该文件。然后它将解析器的输出发送回客户端(解析器也可以修改头)。请求变量(URL中的'?'后面的位或POST请求发送的变量)以某种方式可用于动态脚本。在PHP中,它们可以使用$ _GET / POST全局变量。这些变量由服务器而不是客户端解析,因此您可以将它们放在任何地方。
现在,特别针对您的问题,当您使用<script>
标记时,客户端会询问href
属性指定的文件。这不一定是.js
文件,这只是惯例。 type
属性告诉客户端它是什么类型的文件。如果您编写PHP(或其他)代码来生成Javascript(即使它只是include 'file1.js'
),您可以使用PHP来获取已发送的GET / POST变量。然后发送的Javascript由客户端执行。
很抱歉,如果这包含您已经知道的内容,我只是想完成