我有两个页面。一个是带有文本输入的页面,您可以在其中键入个人资料图像的 url。 此文本旁边有一个按钮,用于打开另一个页面。
第二个页面可以上传图片。我希望能够单击第二页上的图像,让它复制 URL,关闭窗口,然后将 URL 粘贴到第一页的输入表单中。
这是第一页的代码:
<div class="form-group">
<label for="Logo Url">Logo URL</label>
<input type="text" class="form-control" value= "{{ $affiliate->logo_url }}" name="logo_url" required>
<button class="button" onClick="window.open('{{route('affiliate.logo')}}'); return false;">
<span class="icon">Open</span>
</button>
</div>
这成功打开了第二页。 在这里,我列出了上传的图片,可以点击它们。
foreach($imagelist as $image)
{
$url = Storage::disk('s3')->url('').$image['name'];
echo '<div class="col-xs-3 col-sm-4 col-md-3 col-lg-3">
<a href="javascript:selectImage(\''.$url.'\')" class="thumbnail">
<img src='."$url".' class="img-fluid img-thumbnail">
</a></div><br><br>';
}
在这里,我可以获取图像的 url 并将其放入变量“url”中:
<script type="text/javascript">
function selectImage(imgName){
var url = imgName;
console.log(url);
}
</script>
Console.log(url) 显示 url 正确通过,但我不知道如何将它发送回第一页并将其插入文本输入。
感谢任何帮助!谢谢!
最佳答案
你可以将url保存在localStorage中
localStorage.setItem("imgName", "url");
然后在另一个页面检查它是否存在
if (localStorage.getItem("imgName")) {
console.log(localStorage.getItem("imgName"));
}
完成后,删除您的 localStorage Item
localStorage.removeItem("imgName");
但是如果你打开一个弹出窗口来选择图片并且你的主页仍然打开你可以使用 window.postMessage
这是来自 davidwalsh website 的一个很好的例子
var domain = 'http://scriptandstyle.com';
var myPopup = window.open(domain +
'/windowPostMessageListener.html','myWindow');
//periodical message sender
setInterval(function(){
var message = 'Hello! The time is: ' + (new Date().getTime());
console.log('blog.local: sending message: ' + message);
myPopup.postMessage(message,domain); //send the message and target URI
},6000);
//listen to holla back
window.addEventListener('message',function(event) {
if(event.origin !== 'http://scriptandstyle.com') return;
console.log('received response: ',event.data);
},false);
关于javascript - 复制图像 URL 并粘贴到单独页面的表单中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52959061/