Drive
﹟ Turbo.visit
Turbo.visit(location)
Turbo.visit(location, { action: action })
Turbo.visit(location, { frame: frame })
Performs an Application Visit to the given location (a string containing a URL or path) with the specified action (a string, either "advance"
or "replace"
).
If location is a cross-origin URL, or falls outside of the specified root (see Setting a Root Location), Turbo performs a full page load by setting window.location
.
If action is unspecified, Turbo Drive assumes a value of "advance"
.
Before performing the visit, Turbo Drive fires a turbo:before-visit
event on document
. Your application can listen for this event and cancel the visit with event.preventDefault()
(see Canceling Visits Before They Start).
If frame is specified, find a <turbo-frame>
element with an [id]
attribute that matches the provided value, and navigate it to the provided location. If the <turbo-frame>
cannot be found, perform a page-level Application Visit.
﹟ Turbo.cache.clear
Turbo.cache.clear()
Removes all entries from the Turbo Drive page cache. Call this when state has changed on the server that may affect cached pages.
Note: This function was previously exposed as Turbo.clearCache()
. The top-level function was deprecated in favor of the new Turbo.cache.clear()
function.
﹟ Turbo.setProgressBarDelay
Turbo.setProgressBarDelay(delayInMilliseconds)
Sets the delay after which the progress bar will appear during navigation, in milliseconds. The progress bar appears after 500ms by default.
Note that this method has no effect when used with the iOS or Android adapters.
﹟ Turbo.setConfirmMethod
Turbo.setConfirmMethod(confirmMethod)
Sets the method that is called by links decorated with data-turbo-confirm
. The default is the browser’s built in confirm
. The method should return true
if the visit can proceed.
﹟ Turbo.session.drive
Turbo.session.drive = false
Turns Turbo Drive off by default. You must now opt-in to Turbo Drive on a per-link and per-form basis using data-turbo="true"
.
﹟ FetchRequest
Turbo dispatches a variety of events while making HTTP requests that reference FetchRequest
objects with the following properties:
Property | Type | Description |
---|---|---|
body |
FormData | URLSearchParams | a URLSearchParams instance for "get" requests, FormData otherwise |
enctype |
"application/x-www-form-urlencoded" | "multipart/form-data" | "text/plain" |
the HTMLFormElement.enctype value |
fetchOptions |
RequestInit | the request’s configuration options |
headers |
Headers | { [string]: [any] } |
the request’s HTTP headers |
method |
"get" | "post" | "put" | "patch" | "delete" |
the HTTP verb |
params |
URLSearchParams | the URLSearchParams instance for "get" requests |
target |
HTMLFormElement | HTMLAnchorElement | FrameElement | null |
the element responsible for initiating the request |
url |
URL | the request’s URL |
﹟ FetchResponse
Turbo dispatches a variety of events while making HTTP requests that reference FetchResponse
objects with the following properties:
Property | Type | Description |
---|---|---|
clientError |
boolean |
true if the status is between 400 and 499, false otherwise |
contentType |
string |
the value of the Content-Type header |
failed |
boolean |
true if the response did not succeed, false otherwise |
isHTML |
boolean |
true if the content type is HTML, false otherwise |
location |
URL | the value of Response.url |
redirected |
boolean |
the value of Response.redirected |
responseHTML |
Promise<string> |
clones the Response if its HTML, then calls [Response.text()][] |
responseText |
Promise<string> |
clones the Response , then calls [Response.text()][] |
response |
Response | the Response instance |
serverError |
boolean |
true if the status is between 500 and 599, false otherwise |
statusCode |
number |
the value of Response.status |
succeeded |
boolean |
true if the Response.ok, false otherwise |
﹟ FormSubmission
Turbo dispatches a variety of events while submitting forms that reference FormSubmission
objects with the following properties:
Property | Type | Description |
---|---|---|
action |
string |
where the <form> element is submitting to |
body |
FormData | URLSearchParams | the underlying [Request][] payload |
enctype |
"application/x-www-form-urlencoded" | "multipart/form-data" | "text/plain" |
the HTMLFormElement.enctype |
fetchRequest |
FetchRequest | the underlying FetchRequest instance |
formElement |
HTMLFormElement | the <form> element to that is submitting |
isSafe |
boolean |
true if the method is "get" , false otherwise |
location |
URL | the action string transformed into a URL instance |
method |
"get" | "post" | "put" | "patch" | "delete" |
the HTTP verb |
submitter |
[HTMLButtonElement][] | [HTMLInputElement][] | undefined |
the element responsible for submitting the <form> element |