Nếu tôi có một liên kết mà đã được thay đổi với chức năng history.pushState({}, "", link);
nơi tôi link
là ví dụ page.php?value=1&value2=2
Có cách nào để chỉ cần thay đổi value2
với pushState()
chức năng thay vì thay đổi toàn bộ liên kết?history.pushState() truy vấn thay đổi giá trị
Trả lời
Nếu bạn đang cố gắng làm là thay đổi URL mà không cần thêm một mục nhập bổ sung cho đối tượng lịch sử, bạn có thể thử replaceState
.
history.replaceState({value: 1, value2: X}, "title", "page.php");
Không, bởi vì chuỗi truy vấn là một phần của URL. Nếu bạn không thực sự cần phải vượt qua những giá trị cho các mục đích của máy chủ, bạn có thể đưa vào đối tượng trạng thái của lịch sử riêng của mình, và sau đó bạn có thể thay đổi chỉ là đối tượng trạng thái với pushState()
. Ví dụ:
history.pushState({value: 1, value2: 2}, "Title", 'page.php');
history.pushState({value: 1, value2: 'new value'}, "Title");
Bạn có thể sử dụng chức năng này hữu ích để thay đổi một chuỗi truy vấn giá trị tham số:
function updateParam(url, param, value)
{
var re = new RegExp(param+"(.+?)(&|$)","g");
return url.replace(re, param+'='+value)
}
Dòng cuối cùng phải là 'url.replace (re, param + '=' + value + '$ 2')', phải không? Nếu không, bạn sẽ mất dấu phân cách và dấu. – Ricky
- 1. Thay đổi đơn truy vấn URL chuỗi giá trị
- 2. Giá trị thay đổi SQL
- 3. Thay đổi giá trị biến duy nhất trong chuỗi truy vấn
- 4. Làm thế nào để thay đổi giá trị boolean trong truy vấn chọn SQL Server?
- 5. HQL: truy vấn giá trị của java.util.Map
- 6. Redis và giá trị truy vấn
- 7. MongoDB giá trị lồng nhau truy vấn
- 8. Lấy giá trị từ chuỗi truy vấn?
- 9. MySQL Truy vấn Danh sách Giá trị
- 10. Giá trị cháy JListChỉ thay đổi hai lần khi giá trị được thay đổi qua chuột
- 11. Thay đổi giá trị max_heap_table_size?
- 12. truy cập cập nhật truy vấn sql nhiều giá trị
- 13. Giá trị gia tăng trong truy vấn cập nhật mysql
- 14. Tự động thay đổi giá trị chọn
- 15. giá trị thay đổi trong HashSet
- 16. thay đổi giá trị const trong C
- 17. Thay đổi một giá trị trong SQLite3
- 18. thay đổi giá trị của ko.observable
- 19. Cách thay đổi/đặt giá trị DateTimePicker
- 20. Thay đổi giá trị nút XML
- 21. Android - Thay đổi giá trị trong strings.xml
- 22. Thay đổi giá trị văn bảnNode
- 23. thay đổi mặc định Giá trị Boolean
- 24. Web API ActionFilter thay đổi giá trị
- 25. Giá trị mặc định của cột thay đổi
- 26. Re đánh giá truy vấn django sau khi thay đổi làm cho cơ sở dữ liệu
- 27. Nhận chuỗi truy vấn giá trị mảng trong Javascript
- 28. Cách lấy # giá trị từ chuỗi truy vấn?
- 29. Đặt giá trị thông số từ chọn truy vấn
- 30. Giá trị rỗng của khung thực thể trong truy vấn
Điều này dường như không phải là câu trả lời. Việc chuyển đối tượng làm đối số đầu tiên cho 'replaceState' sẽ không ảnh hưởng đến các giá trị truy vấn trong URL. Chỉ đối số cuối cùng sẽ: Trong ví dụ này, nó sẽ xóa hoàn toàn truy vấn. –
OP muốn cập nhật (thay vì tạo mới) một giá trị trong trạng thái lịch sử hiện tại. Trong khi bạn không thể sử dụng pushState để sửa đổi một đối tượng trạng thái, đó là mục đích của replaceState. – devstruck