我目前有一些看起来有点像这样的Javascript:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
function changeSource(newSource) {
document.getElementById('preview').src = newSource;
}
});
</script>
然后我有一些看起来像这样的HTML:
<table border=0 class="colors">
<tbody>
<tr>
<td><a onclick="changeSource('http://www.test.com')"><img width="40" src="test.png"/></a></td>
</tr>
</tbody>
</table>
然后是iframe部分:
<table border=0>
<tbody>
<tr>
<td><iframe id="preview" width="125" height="303" src="test.php" scrolling="no" frameborder="0" marginwidth="0" marginheight="0" hspace="0" vspace="0"></iframe></td>
</tr>
</tbody>
</table>
但是,点击标签中的图片,Iframe的来源不会改变。为什么会这样?
答案 0 :(得分:2)
您收到错误,因为该函数是一个本地方法,因为您将其隐藏在onready函数中。没有必要使用该示例进行onready调用。
<script>
$(document).ready(function(){
function changeSource(newSource) {
document.getElementById('preview').src = newSource;
}
});
</script>
需要
<script>
function changeSource(newSource) {
document.getElementById('preview').src = newSource;
}
</script>
更好的是,不需要JavaScript!使用HTML应该使用它。使用目标属性。
<td><a href="http://www.example.com" target="preview"><img width="40" src="test.png"/></a></td>
答案 1 :(得分:0)
您正在使用jquery。更好地完美使用。
$(document).ready(function(){ // selecting anchor tag for table with class colors $("table.colors a").click(function(e){ e.preventDefault(); var newSource = $(this).attr("href"); $("#preview").attr({"src" : newSource}); }); });
无需通过添加 onclick 属性或目标属性来搞乱html。 但最好使用html的目标属性。
<table border=0 class="colors">
<tbody>
<tr>
<td><a href="http://www.test.com"><img width="40" src="test.png"/></a></td>
</tr>
</tbody>
</table>