在iFrame中设置基本标记,其中包含域URL中的多个部分

时间:2015-10-11 15:10:35

标签: javascript jquery html iframe base

我正在开发一个Angular应用程序。我有一个iFrame并设置了包含相对链接的innerHTML,因此我决定在 iFrame head 标记中添加 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; } } 
}); 

问题:如果我在 img src '/ _layout / abc.png'中有相对网址,则不会显示,因为请求会作为“http://232.17.43.22/_layout/abc.png”,但必须为“http://232.17.43.22/sharepoint.xyz.net/_layout/abc.png

那么我的问题,如何在第一次斜线后避免切割基础href

1 个答案:

答案 0 :(得分:0)

在你的相对路径中删除最初的正斜杠将会起到作用

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

了解详情:Starting with a forward slash in html for "href"

使用链接/ href的简单示例虽然有相同的效果。

如果您将链接悬停并检查网址,则会看到差异。

&#13;
&#13;
<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>
&#13;
&#13;
&#13;