JQuery, атрибут набора для <a> тег

Есть несколько способов сделать это.

Использование карточек

Во-первых, карточки не позволяют напрямую загружать вложения. В лучшем случае они могут связать вас с изображением (или другим файлом), который вы хотите, чтобы ваш пользователь загрузил. Пример json для адаптивной карты, которая может сделать это:

{
    "type": "AdaptiveCard",
    "body": [
        {
            "type": "Image",
            "selectAction": {
                "type": "Action.OpenUrl",
                "url": "https://dev.botframework.com/Client/Images/ChatBot-BotFramework.png"
            },
            "url": "https://dev.botframework.com/Client/Images/ChatBot-BotFramework.png"
        },
        {
            "type": "TextBlock",
            "text": "This card's action will open an image"
        }
    ],
    "actions": [
        {
            "type": "Action.OpenUrl",
            "title": "Open Image",
            "url": "https://dev.botframework.com/Client/Images/ChatBot-BotFramework.png"
        }
    ],
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.0"
}

И выглядит так:

Adaptive Card With Clickable Image

[1122 ] Эта карта отображает изображение и содержит ссылку для пользователя, чтобы открыть и загрузить его. Поскольку я добавил Action.OpenUrl непосредственно к изображению, пользователь может щелкнуть изображение, чтобы открыть его, а затем загрузить его - кнопка «Открыть изображение» предназначена только для демонстрации другого метода.

Вот отличный сайт для Adaptive Card Документация , Схема и удобный для пользователя дизайнер . Обратите внимание, что конструктор не позволяет вам легко добавлять Action в это время. Вы должны вручную добавить их в часть JSON.

Отправка вложений

Однако вы можете напрямую отправить сообщение с возможностью загрузки файлов.

Вы можете определить вложение с помощью:

const attachment = {
  name: 'PDF',
  contentType: 'application/pdf',
  contentUrl: 'https://media.readthedocs.org/pdf/microsoftbotframework/latest/microsoftbotframework.pdf',
}

и затем отправить его пользователю с помощью:

await step.context.sendActivity({
  text: 'Attachment',
  attachments: [attachment],
});

Два важных примечания:

  1. Этот метод хорошо работает для отправки файлов. Если вы используете изображение, оно будет отображать неклейкое изображение. Это означает, что адаптивные карты лучше подходят для отправки загружаемых изображений.

  2. Ваш код может использовать что-то отличное от step.context. Это для отправки в рамках диалога водопада. Вам может понадобиться другая версия context.sendActivity для вашего бота.

Если вы нашли ответ на свой вопрос, отметьте его как «Отвечено», и я могу удалить его из моего трекера поддержки. В противном случае, не стесняйтесь комментировать, и я могу помочь вам в дальнейшем.

7
задан 11 February 2009 в 01:57
поделиться

3 ответа

установить атрибут "хеша" для элемента привязки HTML "a"

<a> элемент (HTMLLinkElement) уже имеет Уровень 0 DOM hash свойство. Это используется как window.location.hash, чтобы считать или установить ‘...#anchor’ часть в конце URL, упоминаемого элементом href.

Установка a.hash, или непосредственно или через jQuery attr() обертка, просто определяет имя привязки в URL ссылки. Вы могли сознательно сказать желание фактического атрибута путем вызова метода DOM a.setAttribute('hash', value), за исключением того, что это не работает в IE6/7 из-за давней ошибки, где она путает атрибуты и свойства.

Это - одна из проблем с добавлением пользовательских нестандартных атрибутов к элементам, Вы никогда не знаете, когда это собирается столкнуться с существующим именем. HTML5 предложит, чтобы Вы ограничили свои пользовательские атрибуты именами, запускающимися с ‘данных -’, но в целом лучше находить другой способ хранить данные, если Вы можете.

14
ответ дан 6 December 2019 в 09:23
поделиться

Вероятно, Ваша проблема состоит в том, что нет никого hash атрибут для <a> тег. Возможно, Вы ищете name атрибут, или возможно Вы хотите изменить хеш в ссылке href, в этом случае необходимо будет проанализировать текст ссылки и заменить хеш с помощью регулярных выражений.

6
ответ дан 6 December 2019 в 09:23
поделиться

Другая опция для установки хеша. это только работает, куда выражение возвращает элемент. Это вызвано тем, что хеш является свойством на фактическом dom элемент.

$(expr).each(function() {
  this.hash = value;
});

если Ваша потребность протестировать, чтобы видеть, ли использование тега это

$(expr).is('a').each(function() {
  this.hash = value;
});

в случае, где Вы на самом деле хотите добавить некоторый пользовательский атрибут, я рекомендовал бы добавить значение с помощью метода данных

$(expr).data('myHash', value);
0
ответ дан 6 December 2019 в 09:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: