- Link Two Objects in Javascript#
- Link model properties#
- Link bi-directionally#
- Link using custom JS code#
- Responding to click events#
- Related Resources#
- HTML DOM Link Object
- Example
- Create a Link Object
- Example
- Link Object Properties
- Standard Properties and Events
- Related Pages
- COLOR PICKER
- Report Error
- Thank You For Helping Us!
- Объект Link в JavaScript
- Комментарии ( 2 ):
Link Two Objects in Javascript#
This guide addresses how to link parameters of two objects in Javascript.
Linking objects in Python is often very convenient because it allows writing code entirely in Python. However, it also requires a live Python kernel. If instead we want a static example (e.g. on a simple website or in an email) to have custom interactivity, or we simply want to avoid the overhead of having to call back into Python, we can define links in JavaScript.
Link model properties#
Let us start by linking the value of the TextInput widget to the object property of a Markdown pane:
import panel as pn pn.extension() markdown = pn.pane.Markdown('Markdown display') text_input = pn.widgets.TextInput(value=markdown.object) link = text_input.jslink(markdown, value='object') pn.Row(text_input, markdown)
As you can see, Panel translates the specification into a JS code snippet which syncs the properties on the underlying Bokeh properties. But now if you edit the widget and press Return, the Markdown display will automatically update even in a static HTML web page.
Link bi-directionally#
When you want the source and target to be linked bi-directionally, i.e. a change in one will automatically trigger a change in the other you can simply set the bidirectional argument:
t1 = pn.widgets.TextInput() t2 = pn.widgets.TextInput() t1.jslink(t2, value='value', bidirectional=True) pn.Row(t1, t2)
Link using custom JS code#
Since everything happens in JS for a jslink , we can’t provide a Python callback. Instead, we can define a JS code snippet, which is executed when a property changes. E.g. we can define a little code snippet which adds HTML bold tags ( ) around the text before setting it on the target. The code argument should map from the parameter/property on the source object to the JS code snippet to execute:
markdown = pn.pane.Markdown("Markdown display", width=400) text_input = pn.widgets.TextInput(value="Markdown display") code = ''' target.text = '' + source.value + '' ''' link = text_input.jslink(markdown, code='value': code>) pn.Row(text_input, markdown)
Here source and target are made available in the JavaScript namespace, allowing us to arbitrarily modify the models in response to property change events. Note however that the underlying Bokeh model property names may differ slightly from the naming of the parameters on Panel objects, e.g. the ‘object’ parameter on the Markdown pane translates to the ‘text’ property on the Bokeh model used to render the Markdown .
Of course, you can still update the value from Python, and it will automatically update the linked markdown:
text_input.value = "Markdown display"
Responding to click events#
To respond to click events, we’ll demonstrate an example of using js_on_click . This example will open a URL from the TextInput widget value in a new browser tab:
button = pn.widgets.Button(name='Open URL', button_type = 'primary') url = pn.widgets.TextInput(name='URL', value = 'https://holoviz.org/') button.js_on_click(args='target': url>, code='window.open(target.value)') pn.Row(url, button)
Related Resources#
- See the Explanation > APIs for context on this and other Panel APIs
- The How to > Link Plot Parameters in Javascript guide addresses how to link Bokeh and HoloViews plot parameters in Javascript.
Create Low-Level Python Links Using .watch
Link Plot Parameters in Javascript
HTML DOM Link Object
You can access a element by using getElementById():
Example
Create a Link Object
You can create a element by using the document.createElement() method:
Example
Link Object Properties
Property | Description |
---|---|
charset | Not supported in HTML5. Sets or returns the character encoding of the linked document |
crossOrigin | Sets or returns the the CORS settings of the linked document |
disabled | Sets or returns whether the linked document is disabled, or not |
href | Sets or returns the URL of the linked document |
hreflang | Sets or returns the language code of the linked document |
media | Sets or returns the media type for the link element |
rel | Sets or returns the relationship between the current document and the linked document |
rev | Not supported in HTML5. Sets or returns the reverse relationship from the linked document to the current document |
sizes | Returns the value of the sizes attribute of the linked resource |
type | Sets or returns the content type of the linked document |
Standard Properties and Events
The Link object also supports the standard properties and events.
Related Pages
COLOR PICKER
Report Error
If you want to report an error, or if you want to make a suggestion, do not hesitate to send us an e-mail:
Thank You For Helping Us!
Your message has been sent to W3Schools.
Top Tutorials
Top References
Top Examples
Get Certified
W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.
Объект Link в JavaScript
При работе с ссылками в JavaScript используется объект Link. Собственно, данный объект является очередным свойством объетка Document. И в этой статье я Вам расскажу о том, как работать с объектом Link, который по сути представляет собой HTML-ссылку.
Вновь мы с Вами не будем разбирать конструкторы и методы за их ненадобностью. А сразу приступим к свойствам Link. И начнём со свойства hostname. Это свойство содержит часть URL, которая отвечает за имя хоста:
В данном примере мы создали сначала ссылку, а уже в скрипте получили объект Link, используя массив links в объекте Document. Данный массив содержит все ссылки на странице. Поэтому мы легко можем всегда к нему обратиться. А, получив объект Link из массива, прочитали его свойство, значение которого оказалось: «myrusakov.ru«. Также это свойство мы можем изменить:
Сразу после выполнения скрипта адрес, на который ведёт данная ссылка, поменяется.
Второе свойство объекта Link — это pathname, которое показывает путь в ссылке. Давайте лучше сразу приведу пример:
В результате Вы увидите следующее: «/mysql.html«. Разумеется данное свойство можно менять.
И последнее свойство, которые мы рассмотрим, называется href. Оно объединяет предыдущие два и содержит путь, указанный в атрибуте href:
На выходе такая строка: «http://myrusakov.ru/mysql.html«. Как и все предыдущие свойства, свойство href у объекта Link также доступно на запись, и Вы можете его смело менять.
Это все три свойства объекта Link в JavaScript, достойные внимания, и которые достаточно часто используются. Есть и другие свойства, но их использование крайне редкое. Как правило, хватает и этих трёх. Кстати, на картинке к этой статье указаны ещё несколько других свойств.
Создано 20.10.2010 19:32:40
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
- Кнопка:
Она выглядит вот так: - Текстовая ссылка:
Она выглядит вот так: Как создать свой сайт - BB-код ссылки для форумов (например, можете поставить её в подписи):
Комментарии ( 2 ):
Для разбора документов надо использовать DOM, либо jQuery. Различные links и прочие элементы уже не работают в современных браузерах.
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2023 Русаков Михаил Юрьевич. Все права защищены.