1

我想获取页面上的任何 url,主要是为了修复未显示的图像,并将其从相对更改为绝对,如果它是相对的。

例子:

<img src="/folder/folder/image.jpg" />

<img src="http://<?php echo get_option('domain'); ?>/folder/folder/image.jpg" />

由于我将插入的域部分是一个 PHP 片段,因此更需要哪种方法最适合。谢谢。

4

4 回答 4

4

您可以获取所有 img 元素并将 src 更改为 document.url + img.src。在 JavaScript 中应该很简单。我认为这里更大的问题是您为什么在使用相对 URL 时遇到问题?如果您想从不同的域或类似的东西动态加载图像,那么可以。

如果您需要在页面加载时执行此操作,那么您最好在用于呈现 html 的任何内容中构建 url 服务器端。

有关如何在 JS 中执行此操作的更多信息和代码示例。从相对 URL 获取绝对 URL。(IE6问题)

于 2013-06-04T19:32:20.307 回答
1

使用 jquery:

$(function () {
    $('img').each(function () {
        if (this.src.indexOf('http://') === -1) this.src = "http://mysite.com" + this.src;
    });
});
于 2013-06-04T19:46:00.250 回答
0

使用 JQuery,您可以使用 .attr() 更改 src 字符串。如果没有 ID 属性,尝试捕获正确的 img 标签可能会变得很困难。您必须检查每个 src 字符串中的“www”。在附加当前站点之前查看是否已经存在站点引用。

 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/lib/jquery/1.7.2/jquery.min.js"></script>
 <script type="text/javascript">
 $(document).ready(function(){
 $("img").each(function(){
      if($(this).prop("src").toLowerCase().indexof("www.") != -1){
           $(this).attr('src', document.domain + $(this).prop("src"));
      }
 )};
 </script>

我认为最难的部分是确定哪些 img 标签需要更改。

于 2013-06-04T19:43:19.880 回答
0

为此使用正则表达式:

$text = '<img src="abc" /> asiodn <img src="dev" />'; //e.g.
$regex = '/<img src="([^https?:\/\/][^"]*)" \/>/';
$result = preg_replace($regex, '<img src="http://' . get_option('domain') . '$1" />', $text);

这应该修复图像 src 中的所有相对 url

http://codepad.viper-7.com/TsHGbE

于 2013-06-04T19:46:27.750 回答