こんにちは、it_solution_labさん
質問の内容を拝見しました。
おそらく、data-text
やdata-url
のデータ属性を利用した設定に関しては、以下のコード例で貼り付けてコメントアウトしているTwitter側のwidget生成スクリプトを、初回ロード時にのみ適用され、iframeのボタンが生成されているのではないかと思います。
https://developer.twitter.com/en/docs/twitter-for-websites/javascript-api/guides/set-up-twitter-for-websites
iframeで生成されたDOMを更新するのは非常に難易度が高いと思いますので、もし動的に変更するのであれば、要求するURLを自ら組み立てるのがよいのではないかと思います。
以下に1例を実装してみましたので、ご検討ください。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="uft-8">
<title></title>
</head>
<body>
<!--
<a
id="test"
href="https://twitter.com/share"
class="twitter-share-button"
data-url="https://yahoo.co.jp"
data-text="ヤフーです。!"
data-size="large"
data-count="horizontal"
data-hashtags="ほにゃらら,ふが"
>Tweet</a>
-->
<a
id="test"
href="https://twitter.com/intent/tweet"
data-url="https://yahoo.co.jp"
data-text="thisistext"
data-hashtags="foo,bar"
target="_blank"
rel="nofollow noopener"
>Tweet</a>
<button id="google">googleに切り替え</button>
<script>
// Tweetリンクのhrefにattributeを追加
function setTweetButton() {
const tweetButton = document.getElementById('test');
const href = tweetButton.getAttribute('href').split('?')[0];
const url = encodeURI(tweetButton.dataset.url);
const text = encodeURI(tweetButton.dataset.text);
const hashtags = encodeURI(tweetButton.dataset.hashtags);
tweetButton.setAttribute('href', `${href}?url=${url}&text=${text}&hashtags=${hashtags}`);
}
// 「googleに切り替え」
document.getElementById('google').addEventListener('click', function() {
const tweetButton = document.getElementById('test');
tweetButton.dataset.url = 'https://google.com';
tweetButton.dataset.text = 'グーグルです';
tweetButton.dataset.hashtags = 'google,tweet';
setTweetButton();
});
// 初回ロード時の呼び出し
(function() {
setTweetButton();
})();
</script>
<script>
window.twttr = (function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0],
t = window.twttr || {};
if (d.getElementById(id)) return t;
js = d.createElement(s);
js.id = id;
js.src = "https://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);
t._e = [];
t.ready = function(f) {
t._e.push(f);
};
return t;
}(document, "script", "twitter-wjs"));
</script>
</body>
</html>
以上、参考になれば、幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/01 02:36
2020/01/18 02:14