Web生产:外部JS文件中的绝对URL?

我想知道,您是否知道在外部JavaScript文件中指定绝对URL的最佳做法? 我正在寻找一种可维护的解决方案。

基本方案是当我需要在运行时通过javascript包含css文件或对某些URL进行ajax调用时,以及在其他情况下通常需要在(外部)javascript文件中指定URL的情况。

如果要更改服务器,或者可能要引入mod_rewrite,如何防止手动编辑js文件中的所有URL?


#1楼

好吧,您可以使用以下属性来构建URL字符串:

var thisurl = document.location.href;

这将为您提供当前页面的URL字符串,希望您可以从那里解析它?

或者,如果您使用的是服务器端语言(例如PHP),则可以使用该语言来获取URL字符串,这会更快( 是从此处复制粘贴的,未经我测试):

<?php
function curPageURL() {
 $pageURL = 'http';
 if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
 $pageURL .= "://";
 if ($_SERVER["SERVER_PORT"] != "80") {
  $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
  $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 return $pageURL;
}
?>
var thisurl = <?php echo curPageURL(); ?>;

或者,您可以将属性存储在服务器上的文件中,该文件可以通过服务器端语言进行解析。


#2楼

您可以引入javasript类,该类保留所有URL。 像这样

function urlContainer(){
    this.searchServer = 'http://search.example.com';
    this.submitServer = 'http://submit.example.com';
}

然后在其他脚本文件中引用此类,并使用类似以下的URL:

alert (new urlContainer().searchServer);

因此,所有外部URL都将包含在一个文件中。 您可以发挥更大的创造力,并使用baseUrl和串联,但这取决于您。


#3楼

另一种(可能更简单)的解决方案可能是简单地将所需的URL存储到一个隐藏字段值中,然后使用客户端Javascript访问它。 请注意,您的“隐藏”字段将需要是HtmlInputHidden或HiddenField控件。 (基本上,它需要具有runat="server"属性,以便可以在服务器端设置其值。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值