试图在同一时间使用window.location和replaceWith()

时间:2011-01-31 11:13:51

标签: php javascript

我有一个链接,点击后应生成PDF文档并更改自己的文本。

这是我的JS功能:

function clander(){

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

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

}

链接:

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

行动:

public function executeIssueBill(sfWebRequest $request) {

//here is the code that generates the pdf.

}

问题:当我点击链接时,它会生成pdf,但链接的文本不会更改。如果我删除window.location...行,它只会更改文字。

我的代码的原因是here

有什么想法吗?

此致

哈维

2 个答案:

答案 0 :(得分:1)

问题在于它永远不会涉及到这一部分:

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

它会将用户重定向到"orders/issueBill/order_id/"+order_id,这是一个不同的页面,因此它不记得状态。

我猜你最好的办法是将参数传递给新页面(即"orders/issueBill/order_id/"+order_id+"?pdf_generated=1") - 这样就知道pdf已经生成了,你可以相应地更改链接。

答案 1 :(得分:0)

我认为这是js函数中语句的顺序。如果你反过来改变顺序,应该这样工作:

<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>

最佳, 卡姆兰