Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery动态更改元标记_Javascript_Jquery_Html - Fatal编程技术网

Javascript 使用jQuery动态更改元标记

Javascript 使用jQuery动态更改元标记,javascript,jquery,html,Javascript,Jquery,Html,我有一个包含多个段落的页面,当用户单击段落旁边的“快照”按钮时,该段落将作为图像在画布上复制,并显示在原始段落上方 在快照段落旁边是一个“共享”按钮,如何在单击“共享”按钮时将以下元标记内容的url更改为快照段落的url 共享按钮 <a href="#" id="share">Share?</a> 在共享按钮之前单击 <meta name="twitter:image" content="p.jpg"> <meta name="twitter:i

我有一个包含多个段落的页面,当用户单击段落旁边的“快照”按钮时,该段落将作为图像在画布上复制,并显示在原始段落上方

在快照段落旁边是一个“共享”按钮,如何在单击“共享”按钮时将以下元标记内容的url更改为快照段落的url

共享按钮

<a href="#" id="share">Share?</a>

在共享按钮之前单击

<meta name="twitter:image" content="p.jpg">
<meta name="twitter:image" content="image/paragraphxi34343.jpg">

共享按钮后单击

<meta name="twitter:image" content="p.jpg">
<meta name="twitter:image" content="image/paragraphxi34343.jpg">


有什么解决方案吗?

不确定这是否是一种优化的方法,但这应该是可行的

$("meta").each(function() {

  if($(this).attr("name") == "twitter:image") {
    $(this).attr("content" , "image/paragraphxi34343.jpg");
  };
});
更通用的方法是

function changeMetaContent(metaName, newMetaContent) {
    $("meta").each(function() {

      if($(this).attr("name") == metaName) {
        $(this).attr("content" , newMetaContent);
      };
    });
}
打电话

changeMetaContent("twitter:image", "image/paragraphxi34343.jpg");
在评论中讨论后更新

如果输入字段中有url,请执行此操作

<input value="http://some-image-url.png" type="hidden" id="image-url-input" />

看看:

除非自从我上一次处理这个问题(几年前)以来情况发生了变化,否则动态地更改不会产生任何影响,因为facebook将单独请求该页面,从而获得原始值,而不是您将其更改为的值。我希望我错了,因为这意味着水疗网站在分享按钮上会有一个真正的问题。嘿,凯文,Twitter呢?不确定,从来没有真正弄糟过。测试将很容易,通过浏览器控制台更改标签并尝试它。它可以工作,但显然用户不会打开他们的控制台;p关于如何编程有什么解决方案吗?嗨,Kiranvj,问题是这几个段落是动态的,可以选择其中任何一个段落,那么我们如何取而代之的是获得所选/“快照”段落的当前图像url?你没有图像url,你只有画布中的原始图像数据。如果您需要url,则需要将此原始图像数据从画布发送到服务器,并将其存储为具有某个文件名的图像,然后只有您才能获取图像url。嘿,Kiranvj,我找到了一种方法来存储画布图像数据,并将图像的url返回到客户端(输入表单)。如何在代码上下文中使用返回的url?或者更好的是,如何通过Ajax/PHP将url返回到
var newmetaContent
并更新页面以供使用?你很忙,慢慢来@kiranvj@SteveGates你现在在哪里有图像URL,在PHP中还是在客户端的输入字段中?客户端在输入字段中对不起,我忘记了冒号的转义$('headmeta[name=twitter\\\:image]').attr('content','image/paragraphxi343.jpg');