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 と値の両方を持っています。ボタンの値はドキュメントを参照し、id は URL を参照します。id と value の両方にデータを持つボタンはありません。ボタンをクリックすると、ボタン id で指定された URL で新しいウィンドウが開くことがあります。それ以外の場合は、Google リーダーを iframe で開き、ボタンの値で参照されているドキュメントを表示します。上記のコードは、次のことを意図していました。

クリックされたボタンから値を取得します。null の場合は、ID を取得し、ID の URL で新しいウィンドウを開きます。null でない場合は、ボタンの値を URI エンコードし、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 に答える