Как я могу создать значок или виджет javascript?

Я хочу создать значок javascript, который отображает список ссылок. Мы размещаем javascript в нашем домене. Другие сайты могут разместить на своей странице пустой тег div, а внизу ссылку на наш javascript, который будет отображать содержимое тега div. Как реализовать что-то подобное?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
0
3 348
5

Ответы 5

как вы говорите, пусть они поместят div внизу своей страницы:

<div id = "mywidget"></div>

затем дайте им ссылку на ваш javascript:

<script type = "text/javascript" src = "http://yourdomain.com/mywidget.js"></script>

затем попросите их изменить свой тег тела или загрузить, чтобы вызвать ваш скрипт

<script type = "text/javascript">
  document.body.onload = loadYourWidget();
</script>

Не могли бы вы подробнее рассказать о том, как выглядит loadYourWidget (). Как вы ссылаетесь на div?

philcruz 29.10.2008 23:56

вы можете использовать «document.getElementById ('mywidget')», чтобы получить div, упомянутый в моем ответе, и просто заполнить его, как указано, любыми ссылками, которые вы хотите.

Owen 30.10.2008 00:09

Как сказал @Owen, за исключением того, почему бы не создать свой javascript, чтобы

<script type = "text/javascript" src = "http://yourdomain.com/mywidget.js"></script>

выполняет работу по заполнению <div id = "mywidget"></div> самостоятельно, тем самым избавляя их от необходимости вызывать loadYourWidget () из своей загрузки DOM, если вы включаете тег скрипта сразу после div mywidget в исходный код html. На самом деле это не лучшая практика, но я думаю, что это сработает.

Пример вашего кода mywidget.js:

document.getElementById('mywidget').innerHTML = "<a href=''>LinkOne</a> <a href=''>LinkTwo</a>";

Я бы дал тегу SCRIPT идентификатор и заменил сам тег сценария содержимым DIV +, сделав так, чтобы они включали только одну строку кода. Что-то вроде следующего:

<script id = "my-script" src = "http://example.com/my-script.js"></script>

В своем скрипте вы можете одним махом поменять тег SCRIPT на свой DIV, например:

var scriptTag, myDiv;
scriptTag = document.getElementById('my-script');
myDiv = document.createElement('DIV');
myDiv.innerHTML = '<p>Wow, cool!</p>';
scriptTag.parentNode.replaceChild(myDiv, scriptTag);

Вам не нужен начальный div для заполнения списка ссылок.

Просто создайте div с помощью document.write в том месте, где размещен скрипт.

<script type = "text/javascript" src = "http://domain.com/badge.js"></script>

... и в вашем скрипте:

var links = [
  '<a href = "#">One</a>',
  '<a href = "#">Two</a>', 
  '<a href = "#">Three</a>'
];

document.write("<div>" + links.join(", ") + "</div>");

Еще одно преимущество заключается в том, что вам не нужно ждать полной загрузки страницы.

Мне потребовалось некоторое время, чтобы найти этот ответ на Stackexchange, потому что я использовал другие условия поиска. Я считаю, что ссылка предлагает более полный ответ, чем уже приведенные здесь:

Как создать веб-виджет (используя jQuery)

Это покрывает:

  • ensure the widget’s code doesn’t accidentally mess up with the rest of the page,
  • dynamically load external CSS and JavaScript files,
  • bypass browsers’ single-origin policy using JSONP.

Другие вопросы по теме