哪里出错:
$('#prod').on('click', '.doc', function() {
var src = this.value;
if (! src) {
var url = this.id;
window.open('' + url + '');
} else {
var encodedSrc = encodeURIComponent(src);
$('#inner').html('<iframe id = dFrame src = http://docs.google.com/viewer?url=' + encodedSrc + '&embedded=true></iframe>');
类.doc是指div'prod'中的几个动态生成的按钮。它们都具有id和值,用于将链接传递给click函数。按钮的值是指文档,URL的ID。没有按钮在id和value中都有数据 - 目的是有时单击按钮将在按钮id中指定的URL处打开一个新窗口;在其他时候,它将在iframe中打开Google阅读器并显示按钮值中引用的文档。上面的代码意味着:
从点击的按钮中获取值; 如果为null,则获取id并在id中的URL处打开一个新窗口; 如果它不为null,则URIencode按钮值并加载Google阅读器。
我可以让一个或另一个工作,但不能同时工作。
答案 0 :(得分:0)
不是原始问题的答案,但如果有人感兴趣,可以获得相同结果的解决方法。
$('#prod').on('click', '.doc', function() {
var src = this.value;
if (src.match('com$')) {
window.open('' + src + '');
} else {
var encodedSrc = encodeURIComponent(src);
$('#inner').html('<iframe id = dFrame src = http://docs.google.com/viewer?url=' + encodedSrc + '&embedded=true></iframe>');
如果按钮值是文件,则会在按钮点击时通过Google查看器将其加载到iframe中;如果它是一个网址,它将被加载到一个新窗口。