*更新*
我正在尝试设置动态创建的iframe的基本标记。 如果我将基本标记设置为根(http://example.com/)并使src文件中的链接包含来自基础的路径,则一切正常。但是,如果我将基数设置为包含文件夹路径(http://example.com/Test/),则仅链接起作用。 我一直试图让它正常工作几天。
注意:src文件和所有链接的根网址相同,因此它不是跨域访问问题。
的index.html
<script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
// First frame ** WORKS **
$('<iframe id="iFrame1" src="Test/test1.html"/>').load(function(){
var baseTag= document.createElement('base');
baseTag.href = "http://aquawicket.com/";
$('#iFrame1').contents().find('head').append(baseTag);
}).appendTo('body');
// Second frame ** WORKS **
$('<iframe id="iFrame2" src="Test/Files/test2.html"/>').load(function(){
var baseTag= document.createElement('base');
baseTag.href = "http://aquawicket.com/Debug/Test/Files/";
$('#iFrame2').contents().find('head').append(baseTag);
}).appendTo('body');
// Third frame ** DOES NOT WORK ** need this to work
$('<iframe id="iFrame3" src="Test/test3.html"/>').load(function(){
var baseTag= document.createElement('base');
baseTag.href = "http://aquawicket.com/Debug/Test/Files/";
$('#iFrame3').contents().find('head').append(baseTag);
}).appendTo('body');
});
</script>
test1.html 工作
<script type="text/javascript" src="/Debug/Test/Files/javascript.js"></script>
iFrame1<br>
<a href="/Debug/Test/Files/hello.html">LINK</a><br>
<img src="/Debug/Test/Files/image.png" />
<input type="button" value="Test" onClick="TestJava()"/>
test2.html 工作
<script type="text/javascript" src="javascript.js"></script>
iFrame2<br>
<a href="hello.html">LINK</a><br>
<img src="image.png" />
<input type="button" value="Test" onClick="TestJava()"/>
test3.html 无法正常工作需要此工作
<script type="text/javascript" src="javascript.js"></script>
iFrame3<br>
<a href="hello.html">LINK</a><br>
<img src="image.png" />
<input type="button" value="Test" onClick="TestJava()"/>
在iFrame1中,我们将基础设置为域的根(http://root.com/),test.html文件中的所有链接都包含路径(/ Path / Path / Path / file。 XXX)。效果很好。
在iFrame2中,我们将基础设置为链接文件的完整路径(http://root.com/Path/Path/Path),如果test.html文件位于链接文件中,则链接不需要包含路径与链接文件(file.xxx)相同的文件夹。这也很有效。
在iFrame3中,我们将基础设置为链接文件的完整路径(http://root.com/Path/Path/Path),如果test.html文件不在,则链接将不会全部工作与链接文件(file.xxx)相同的文件夹。这不适用于图片和.js包括。它只适用于链接。
我已在此处上传了此问题的实时版本 http://aquawicket.com/Debug
答案 0 :(得分:0)
首先,我认为你在加载函数内部以及之后设置iframe的src attr这一行是错误的。我尝试了你的代码,load函数中的行创建了一个无限递归,iframe继续加载自己。
其次,除此之外,我发现我设置了基本标记(完整路径,通过/ Test /),然后test.html文件中的img标记有一个src属性。只是文件名。和你一样,我没有在浏览器中看到图像。但是我打开了萤火虫面板,点击了HTML标签,找到了img标签,在它上面盘旋......我看到图像的缩略图!我认为在这种情况下浏览器行为只是不一致和奇怪。