当前位置: 首页 > 面试题库 >

如何在javascript中获取基本网址

董桐
2023-03-14
问题内容

我正在使用CodeIgniter建立一个网站,我有各种资源可以像这样通过base_url]帮助器函数加载

<link rel="stylesheet" type="text/css"href="'.base_url('assets/css/themes/default.css').'" id="style_color"/>

产生(即www.mysite.com)

<link rel="stylesheet" type="text/css" href="http://www.mysite.com/assets/css/themes/default.css" id="style_color"/>

然后,我可以像这样在javascript中与另一个资源交换该资源

$('#style_color').attr("href", "assets/css/themes/" + color_ + ".css");

发生的事情是它将尝试加载资源而不使用php生成的绝对路径,因此我的解决方案是使用php在每个页面中添加一个虚拟标记,如下所示

<div id="base_url" class="'.base_url().'"></div>

然后,我将javascript行修改为

$('#style_color').attr("href", $('#base_url').attr("class") +"assets/css/themes/" + color_ + ".css");

它确实可以工作,但看起来却一点也不优雅,因此,我希望对如何从javascript或任何其他解决方案中生成此基本url提供任何帮助,谢谢:)

我更喜欢仅使用Javascript的解决方案,并且由于我使用的是CodeIgniter,所以该document.base_url变量的url段从protocolindex.php似乎很方便

document.base_url = base_url('index.php');

功能base_url()

function base_url(segment){
   // get the segments
   pathArray = window.location.pathname.split( '/' );
   // find where the segment is located
   indexOfSegment = pathArray.indexOf(segment);
   // make base_url be the origin plus the path to the segment
   return window.location.origin + pathArray.slice(0,indexOfSegment).join('/') + '/';
}

问题答案:

JavaScript中的基本URL

您可以使用以下代码在JavaScript中轻松访问当前网址 window.location

您可以通过此locations对象访问该URL的段。例如:

// This article:
// https://stackoverflow.com/questions/21246818/how-to-get-the-base-url-in-javascript

var base_url = window.location.origin;
// "http://stackoverflow.com"

var host = window.location.host;
// stackoverflow.com

var pathArray = window.location.pathname.split( '/' );
// ["", "questions", "21246818", "how-to-get-the-base-url-in-javascript"]

在Chrome开发工具中,您只需输入window.location控制台,它将返回所有可用的属性。



 类似资料:
  • 本文向大家介绍如何在JavaScript中获取图片数据网址?,包括了如何在JavaScript中获取图片数据网址?的使用技巧和注意事项,需要的朋友参考一下 若要使用javascript将图像从HTML页面标签转换为数据URI,首先需要创建一个canvas元素,将其宽度和高度设置为与图像相同,在其上绘制图像,最后在其上调用toDataURL方法。 这将返回图像的base64编码数据URI。例如,如果

  • 问题内容: 我在WindowsVista上使用XAMPP。在我的发展中,我有。 如何使用PHP? 我尝试了类似的方法,但是没有一个起作用。 问题答案: 尝试这个: 了解有关预定义变量的更多信息。 如果计划使用https,则可以使用以下命令: 注意 :如果您依赖于键(包含用户输入),则仍必须进行一些清理,删除空格,逗号,回车符等。所有对于域无效的字符。查看PHP内置的parse_url函数以获取示例

  • 我想用JavaScript将这个对象中的数字放入一个数组。我已经用尝试过了,但在Chrome中出现了以下错误: 未捕获的TypeError:Data.Split不是函数。 我如何提取数字?

  • 问题内容: 我想得到 1到24 ,太平洋时间凌晨1点。 如何在Node.JS中获得该号码? 我想知道现在太平洋时间现在几点。 问题答案: 您应该检出Date对象。 特别是,您可以查看Date对象的getHours()方法。 getHours()返回0到23之间的时间,因此请确保相应地进行处理。我认为0-23有点直观,因为军事时间是从0-23开始,但这取决于您。 考虑到这一点,代码将类似于以下内容:

  • 问题内容: 我正在尝试在PowerShell中获取Java版本。版本字符串将打印到 stderr ,因此我试图将其重定向到stdout并将其分配给字符串变量。 我收到以下奇怪的错误: 不带重定向的呼叫(2>&1)给出以下信息: 我认为这里的Java是无关紧要的,其他任何将字符串打印到stderr的程序也会发生同样的情况。 我使用的PowerShell版本是 2.0 。 问题: 如何将stderr重