0

这哪里出错了:

$('#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 函数。按钮的值指向一个文档,id 指向一个 URL。没有按钮在 id 和 value 中都有数据 - 目的是有时单击按钮会在按钮 id 中指定的 URL 处打开一个新窗口;在其他时候,它会在 iframe 中打开 Google Reader 并显示按钮值中引用的文档。上面的代码旨在:

从单击的按钮中获取值;如果为null,则获取id并在id中的URL处打开一个新窗口;如果它不为 null,则对按钮值进行 URIencode 并加载 Google 阅读器。

我可以让一个或另一个工作,但不能同时工作。

4

1 回答 1

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 中;如果是 url,它会在新窗口中加载。

于 2013-08-27T09:20:02.770 回答