开发者

Trying to use window.location and replaceWith() in the same time

开发者 https://www.devze.com 2023-02-07 10:52 出处:网络
I have a link that when clicked should generate a PDF document and change the text of himself. This is my JS function:

I have a link that when clicked should generate a PDF document and change the text of himself.

This is my JS function:

function clander(){

  window.location="orders/issueBill/order_id/"+order_id;

  $('#jander').replaceWith('pdf just generated');

}

The link:

<a href="#" id="jander" onClick='clander()'>click here</a>

The action:

public 开发者_运维技巧function executeIssueBill(sfWebRequest $request) {

//here is the code that generates the pdf.

}

The problem: when I click the link, it generates the pdf but the text of the link is not changed. It only changes the text if I remove the window.location... line.

The reason of my code is here.

Any idea?

Regards

Javi


The problem is that it never gets to this part:

$('#jander').replaceWith('pdf just generated');

It redirects the user to "orders/issueBill/order_id/"+order_id, which is a different page, so it doesn't remember state.

I guess your best bet is to pass a parameter to the new page (ie. "orders/issueBill/order_id/"+order_id+"?pdf_generated=1") - this way it'll know that the pdf was generated, and you can change the link accordingly.


I think it's the order of your statements in the js function. If you change the order the other way around, should work fine like so:

<script>

function clander(){

    document.getElementById('jander').innerHTML = 'pdf just generated';
    window.location="orders/issueBill/order_id/"+order_id;

}

</script>

<a href="#" id="jander" onClick='clander()'>click here</a>

Best, Kamran

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号