用JQuery替换页面中的所有URL?

时间:2011-12-07 10:00:49

标签: jquery ajax ssl

我需要一些指示/示例,说明如何使用jquery替换文档头部中的所有链接。

我正在使用一个需要我的网站拥有SSL的应用。我的主机有一个共享SSL,可用于访问我的网站。为了避免购买SSL和静态IP(以及证明我可以做到),我通过他们的安全URL安全地访问我的网站查看一个html文件,该文件只是一个提供不安全页面的框架(我的网站)。我必须使用他们的网址安全地访问我的网站,并使用他们的网站路径,所以它是这样的 - https://secure.bluehost.com/~username/mysite/app/index.html(这只是一个源指向我网站的框架)。

无论如何,当然有安全警告,因为我的网站使用http://mysite.com/mysite.jshttps://secure.bluehost.com~username/mysite/mysite.js提取javascript文件等。所以,长话短说我需要将文档头部中的所有链接从http://mysite.com替换为https://secure.bluehost.com/~username/mysite

例如,我想改变这样的每个链接:

<link rel="stylesheet" href="http://mysite.com/wp-content/themes/thesis_182/
style.css" type="text/css" media="screen, projection">

到此:

<link rel="stylesheet" href="https://secure.bluehost.com/~username/mysite/wp-
content/themes/thesis_182/style.css" type="text/css" media="screen, projection">

由于

2 个答案:

答案 0 :(得分:2)

只需省略协议并使用//即可。这将使用当前协议,无论它是什么..

因此请将您的链接更改为

<link rel="stylesheet" href="//mysite.com/wp-content/themes/thesis_182/
style.css" type="text/css" media="screen, projection">

你会没事的。

答案 1 :(得分:0)

我认为这样的事情应该有效,但我没试过:

$('link').each(function () {
    var target = $(this);
    var oldHref = target.attr('href');
    var newHreh = oldHref.replace('http://mysite.com', 'https://secure.bluehost.com/~username/mysite');
    target.attr('href', newHref);
});

要让代码在它之前太晚,因此在将css加载到页面之前,只需将标记放在标题中,而不是将其放在页面的末尾。 您还可以省略标记声明并以不同的方式处理问题,使用jQuery向正文标记添加具有正确地址的链接标记。