如何使用js和css创建一个新的DOM元素,使其能够驻留在不同的域中

How to make a new DOM element to think it resides in a different domain with js and css

本文关键字:元素 DOM css 创建 js 何使用 一个      更新时间:2023-09-26

我正在创建一个新的dom元素:

var bubbleDOM = document.createElement('div');
bubbleDOM.setAttribute('class', 'selection_bubble');
document.body.appendChild(bubbleDOM);

然后,我使用.responseText以文本的方式将数据填充到此DOMXMLHttpRequest并最终更改其css:

.selection_bubble {
  position: absolute;
}

直到现在一切都很好。我的问题是,我填充到的一部分数据DOM元素具有href链接,例如:/prop.php?id=333

这让他们认为链接真的来自我的网站,所以当用户点击它时,他会转到:http://www.mywebsite.com/prop.php?id=333

我希望这些链接出现在网站上(我知道它的名字只有一个我正在从中提取数据),因为它们应该是:http://www.thesitei'mpullingfrom.com/prop.php?id=333

我如何用CSS或JS来改变这一点?

为了改进我对这个问题的原始评论:

为了只修复以斜杠(/)开头的URL,应该运行以下命令:

(根据固定表达式的注释进行编辑)

responseText.replace(/(href=")('/[^"]+)"/g, "$1http://thesiteimpullingfrom.com$2'"")

将(X)HTML解析为DOM Object,然后获取所有锚Element并替换它们的href属性。例如:

var i = 0, n ;
var l ;
var s ;
    l = dom.getElementsByTagName("a") ;
    for( n = l.length; i < n ; i++ ) {
          o = l[i] ;
          if(  !!  ( s = o.getAttribute("href") )  ) {
                // add domain to s
                o.setAttribute("href") ;
          }
    }