Как изменить SRC приложения / PDF с помощью JavaScript? - PullRequest
1 голос
/ 20 марта 2012

У меня есть такой код для вставки

<embed id="1000" style="display: ;" width="850" height="1100" src="/new_folder/hi.pdf"       type="application/pdf">
</embed>

и у меня есть этот код

<a onfocus="OnLink(this)" href="javascript:switch('1000','/new_folder/bye.pdf');" onmousedown="return VerifyHref this,event,'{$XmlDefinition/List/@DefaultItemOpen}','{$thisNode/@HTML_x0020_File_x0020_Type.File_x00    20_Type.mapcon}','{$thisNode/@serverurl.progid}')" >
<xsl:value-of select="$thisNode/@FileLeafRef.Name" />
</a>  

и у меня есть эта функция

<script type="text/javascript">
function switch(id,dirToPDF) { 
    $('1000').attr('data','dirToPDF'); 

} 
</script>

Поэтому, когда я нажимаю на ссылку, она должна вызвать switch и изменить отображаемый pdf (который является hi.pdf) на bye.pdf, но он не работает.

Может кто-нибудь помочь мне с этим?


EDIT:

Хорошо, поэтому я изменил его на

<script type="text/javascript"> 
  function switchFunc(id, dirToPDF) {  
    $(id).attr('data', dirToPDF); 
  } 
</script> 


<a onfocus="OnLink(this)" href="javascript:switchFunc('pdf_d','/new_folder/bye.pdf');" onmousedown="return VerifyHref(this,event,'{$XmlDefinition/List/@DefaultItemOpen}','{$thisNode/@HTML_x0020_File_x0020_Type.File_x0020_Type.mapcon}','{$thisNode/@serverurl.progid}')" >
  <xsl:value-of select="$thisNode/@FileLeafRef.Name" />
</a>  


<embed id="pdf_d" style="display: ;" width="850" height="1100" src="/new_folder/hi.pdf" type="application/pdf">
</embed>

и он все еще не работает ...

Ответы [ 2 ]

1 голос
/ 20 марта 2012

Позвольте мне рассмотреть:

  • Как сказал @ user1113426, вы вызываете пользовательскую функцию 'switch' для переключения атрибутов - однако switch является зарезервированной функцией, и я не 'Не думаю, что вы можете перезаписать его.
  • Как я уже сказал (затем удалил) и @michaeldcooney, вам нужно поставить знак «#» перед 1000;Превращение $('1000') в $('#1000').
  • Как сказал @NickBeranek, поле id не может быть полностью числовым, поэтому 1000 не будет работать в любом случае.(Попробуйте имя документа - NewDocPdf)
  • Наконец, изменяемый атрибут элемента (data) не является правильным элементом для изменения.Вы хотите изменить src, так как именно он выбирает, какой документ загружен.

Related: У вас есть как событие onmousedown, так и действие при нажатии на ссылку. Они могут создавать помехи, поэтому это может быть проще сделать ..

Окно Doc:

<embed id="PDFDisplay" style="display: ;" width="850" height="1100" src="/new_folder/hi.pdf" type="application/pdf">
</embed>

Ссылки на изменения:

<a class="altDoc" href="javascript:return void;" whichDoc="/new_folder/bye.pdf" >
<xsl:value-of select="$thisNode/@FileLeafRef.Name" />
</a>  

Далее:

<script type="text/javascript">

    switchFunc = function (jQueryObject) {
        console.log(jQueryObject);
        $('#PDFDisplay').attr('src',jQueryObject.attr('whichDoc') );
    }
    $('.altDoc').hover( function () { OnLink(this); } );
    $('.altDoc').click( function (event) {
        console.log("this");
        switchFunc(this);
        return VerifyHref(this,event,'{$XmlDefinition/List/@DefaultItemOpen}','{$thisNode/@HTML_x0020_File_x0020_Type.File_x00 20_Type.mapcon}','{$thisNode/@serverurl.progid}');
    } );
</script>

Дайте мне знать, как работает выше, и я могу предоставить любые другие изменения.

РЕДАКТИРОВАТЬ : похоже, я забыл несколько),; и т. Д. Кроме того, я сохранил плохое "и забыл открывающую скобку после VerifyHref.

РЕДАКТИРОВАТЬ ВТОРОЕ :

Вы когда-нибудь задумывались над тем, чтобы написать группу тегов с target="iFrameNameAttribute"? . У вас могут быть ссылки, специально предназначенные для iframe, и вы можете установить для содержимого iFrame встроенный PDF.Всякий раз, когда вы нажимаете на ссылку, которая нацелена на iFrame, она может изменить содержимое.

0 голосов
/ 20 марта 2012

Пожалуйста, измените ваш скрипт следующим образом и передайте параметр id:

<script type="text/javascript">
  function switchFunc(id, dirToPDF) { 
    $('#' + id).attr('data', dirToPDF);
  }
</script>

switch - зарезервированное имя в JS.Кроме того, 1000 не является действительным идентификатором.Идентификаторы не могут начинаться с цифры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...