在iFrame中设置基本标签,在域名URL中设置几个部分

Set base tag in iFrame with several parts in domain URL

本文关键字:设置 几个 域名 iFrame 标签 URL      更新时间:2023-09-26

我正在开发一个Angular应用程序。我有一个iFrame并设置其包含相对链接的innerHTML,所以我决定在iFrame标签中添加base标签,我在脚本/控制器中编写的代码如下:

$scope.content = $scope.selectedSitePage.html.value; 
var baseTag = document.createElement('base');
var prependURL = "http://232.17.43.22/sharepoint.xyz.net/";
baseTag.href = prependURL ;
$('#frameContent').contents().find('head').append(baseTag);
在HTML

:
<iframe id="frameContent" frame-content="content"></iframe>

frameContent是一个指令:

.directive('frameContent', function () {
return { scope: { "content":"=content" },
link: function link(scope, element) { 
element.get(0).contentWindow.document.body.innerHTML = scope.content; } } 
}); 
ISSUE:是,如果我有一个相对的URL在img src '/_layout/abc.png',它不会出现,因为请求去'http://232.17.43.22/_layout/abc.png',但它必须是'http://232.17.43.22/sharepoint.xyz.net/_layout/abc.png'

所以我的问题,我怎么能避免切片base href在第一个斜杠之后?

在你的相对路径中丢掉初始的正斜杠就可以了

<img src='_layout/abc.png' alt='an image text' />

阅读更多:在html中开始使用"href"

使用link/href的简单示例效果相同。

如果你悬停链接并检查url地址,你会看到差异。

<html>
	<head>
		<base href='http://232.17.43.22/sharepoint.xyz.net/' />
	</head>
<body>
  
<a href='_layout/abc.png'>Relative path with no "/"</a><br /><br />
  
<a href='/_layout/abc.png'>Absolute path with "/"</a>
  
</body>  
</html>