我正在开发一个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 ?
答案 0 :(得分:0)
在你的相对路径中删除最初的正斜杠将会起到作用
<img src='_layout/abc.png' alt='an image text' />
了解详情:Starting with a forward slash in html for "href"
使用链接/ href的简单示例虽然有相同的效果。
如果您将链接悬停并检查网址,则会看到差异。
<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;