![](/img/trans.png)
[英]Javascript window.location.href onClick not working
[英]How to use “javascript:window.location.href's” value of “onclick” event in jquery attr() method?
我有以下HTML代碼:
<span class="c-bl-btn c-print-btn"><input type="button" class="more print_invoice" name="" id="" value="Print Invoice" onclick="javascript:window.location.href='{$control_url}modules/transactions/view_transactions.php?op=print_invoice&txn_no=101&user_id=1001'"></span>
現在,我在print_invoice
類上調用jQuery
函數,如下所示:
$('.print_invoice').live('click', function (e) {
// alert('here');
e.preventDefault();
var post_url = $(this).attr('href');
window.open(post_url, 'Transaction Invoice', 'width=640, resizable=yes, scrollbars=yes, toolbar=no, menubar=no, location=no, directories=no, status=true')
});
$('.print_invoice').unbind('click');
但是我無法在上述函數調用中獲取href屬性值。 實際上,我想使用"javascript:window.location.href"
包含的URL
值,但無法執行此操作。
將您的HTML更改為
<span class="c-bl-btn c-print-btn"><input type="button" class="more print_invoice" name="" id="" value="Print Invoice" data="{$control_url}modules/transactions/view_transactions.php?op=print_invoice&txn_no=101&user_id=1001"></span>
請注意,除了onclick
事件之外,我onclick
url包含在data
屬性中。 這樣,更容易提取數據。
JS
$('.print_invoice').on('click', function (e) {
e.preventDefault();
var post_url = $(this).data();
window.open(post_url, 'Transaction Invoice', 'width=640, resizable=yes, scrollbars=yes, toolbar=no, menubar=no, location=no, directories=no, status=true')
});
您的類.print_invoice是一個按鈕,而不是帶有href的錨鏈接。
好吧,可能我會完全重寫代碼,但是如果由於某些原因您不能這樣做,我將這樣做:
var post_url = $(this).attr('onclick').split( "'" );
post_url = post_url[1];
正如另一個答案所說,沒有href屬性。 該URL隱藏在onclick-Attribute中。 因此,我們得到了一個並在正確的位置將其拆分,以獲得一個數組,其中數組的中間條目(等於post_url [1])是URL
使用數據屬性:
<span class="c-bl-btn c-print-btn"><input type="button" class="more print_invoice" name=" value="Print Invoice" data-url="{$control_url}modules/transactions/view_transactions.php?op=print_invoice&txn_no=101&user_id=1001"></span>
JavaScript代碼:
$(document).ready(function(){
$('.print_invoice').on('click', function () {
var post_url = $(this).data('url');
window.open(post_url, 'Transaction Invoice', 'width=640, resizable=yes, scrollbars=yes, toolbar=no, menubar=no, location=no, directories=no, status=true')
});
});
您還可以使用輸入隱藏字段:
<input type="hidden" value="{$control_url}modules/transactions/view_transactions.php? op=print_invoice&txn_no=101&user_id=1001" id="print_url">
JavaScript代碼:
$(document).ready(function(){
$('.print_invoice').on('click', function () {
var post_url = $("#print_url").val();
window.open(post_url, 'Transaction Invoice', 'width=640, resizable=yes, scrollbars=yes, toolbar=no, menubar=no, location=no, directories=no, status=true')
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.